日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

判断一棵二叉树是否为搜索二叉树、完全二叉树、平衡二叉树(java)

發布時間:2025/4/16 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 判断一棵二叉树是否为搜索二叉树、完全二叉树、平衡二叉树(java) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

平衡二叉樹的解法:主要是求出二叉樹的高度,若根節點的左子樹的高度與右子樹的高度差小于等于1,則表示該二叉樹為平衡二叉樹

public static class Node{public int value;public Node left;public Node right;public Node(int data){this.value = data;} } public static boolean isBalance(Node head){return getHeight(head, 0) ! = -1; }public static int getHeight(Node head, int level){if(head == null){return level;}int lh = getHeight(head.left, level + 1);int rh = getHeight(head.right, level + 1);if(lh == -1 || rh == -1 || Math.abs(lh - rh) > 1){return -1;} } 完全二叉樹的解法:若最左的一個節點只有一個左子節點,則其余的同高度的節點都應該是葉節點
public static boolean isComplete(Node head){if(head == null){return true;}Queue<Node> queue = new LinkedList<Node>();boolean leaf = false;Node cur = null;Node l = null;Node r = null;queue.offer(head);while(!queue.isEmpty){cur = queue.poll();l = cur.left;r = cur.right;if((leaf && (l != null || r != null)) || (l == null && r != null)){return false;}if(l != null){queue.offer(l);}if(r != null){queue.offer(r);}else{leaf = true;}} }搜索二叉樹的解法:只需要中序遍歷整棵二叉樹,判斷得到的節點序列是否為依次遞增即可。

總結

以上是生活随笔為你收集整理的判断一棵二叉树是否为搜索二叉树、完全二叉树、平衡二叉树(java)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。