遞迴版本
publicstatic
intgetdeep(treenode root)
非遞迴版本
思想:二叉樹的深度就是指二叉樹有幾層,那麼我們可以使用層序遍歷來實現。
publicstatic
intgetdeep(treenode root)
if(p.right != null
) }
//如果下一層沒有結點,則結束迴圈
if(size == 0) break
; count =size;
level++;
}return
level;
}
思想:二叉樹的寬度就是最寬的那一層的節點數,所以還是需要層序遍歷的思想,先計算每層的結點數,然後找出最大的。
publicstatic
intgetwidth(treenode root)
if(p.right != null
) }
if(size == 0) break; //
如果下一層沒有結點,則結束迴圈
if(size > width) width =size;
count =size;
}return
width;
}
二叉樹的寬度和深度
1.二叉樹的寬度 若某一層的節點數不少於其他層次的節點數,那麼該節點數即為二叉樹的寬度。在訪問過程中,我們只需要將同一層中的節點同時入棧即可。為此,我們也只需要知道上一層佇列中元素的多少,在將該queue中所有元素出佇列的同時,將下一層的元素進佇列,完成交接。這樣,便可以清晰地知道每一層中節點的多少...
二叉樹的深度 二叉樹的深度 二叉樹最大寬度
題目 輸入一棵二叉樹的根節點,求該樹的深度。從根節點到葉節點依次經過的節點 含根 葉節點 形成樹的一條路徑,最長路徑的長度為樹的深度。例如 給定二叉樹 3,9,20,null,null,15,7 返回它的最大深度 3 根節點加上左右子樹的最大深度就是樹的最大深度。如下 class solution ...
求二叉樹的深度和寬度
求二叉樹的深度和寬度.cpp 定義控制台應用程式的入口點。include stdafx.h include include using namespace std struct btnode 先序建立二叉樹 void creatbtree btnode root else 求二叉樹的深度 int g...