二叉樹的寬度和深度

2022-08-23 16:15:13 字數 768 閱讀 6678

遞迴版本

public

static

intgetdeep(treenode root)

非遞迴版本

思想:二叉樹的深度就是指二叉樹有幾層,那麼我們可以使用層序遍歷來實現。

public

static

intgetdeep(treenode root)

if(p.right != null

) }

//如果下一層沒有結點,則結束迴圈

if(size == 0) break

; count =size;

level++;

}return

level;

}

思想:二叉樹的寬度就是最寬的那一層的節點數,所以還是需要層序遍歷的思想,先計算每層的結點數,然後找出最大的。

public

static

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...