筆試 面試 二叉樹的深度和寬度

2021-07-11 04:26:24 字數 626 閱讀 1254

二叉樹這一資料結構,為演算法設計帶來,

logn

的時間複雜度因子;

遞迴的程式結構。

現定義二叉樹如下的節點結構:

struct node

;

顯然是遞迴,

int depthoftree(node* root)

顯然是廣度優先,對於廣度優先,顯然使用佇列進行儲存每一層的節點;

流程如下,設定 max_width 記錄最大寬度,cur_width 維護當前層的節點數目,會隨著佇列的元素出棧而減少,next_width 維護下一層的節點數目,會隨著佇列的元素入棧而增加;

int widthoftree(node* root)

if (node->rgt)

if (next_width > max_width)

max_width = next_width;

cur_width = next_width;

next_width = 0;

}

}return max_width;

}

二叉樹的寬度和深度

遞迴版本 public static intgetdeep treenode root 非遞迴版本 思想 二叉樹的深度就是指二叉樹有幾層,那麼我們可以使用層序遍歷來實現。public static intgetdeep treenode root if p.right null 如果下一層沒有結點,...

二叉樹的寬度和深度

1.二叉樹的寬度 若某一層的節點數不少於其他層次的節點數,那麼該節點數即為二叉樹的寬度。在訪問過程中,我們只需要將同一層中的節點同時入棧即可。為此,我們也只需要知道上一層佇列中元素的多少,在將該queue中所有元素出佇列的同時,將下一層的元素進佇列,完成交接。這樣,便可以清晰地知道每一層中節點的多少...

二叉樹的深度 二叉樹的深度 二叉樹最大寬度

題目 輸入一棵二叉樹的根節點,求該樹的深度。從根節點到葉節點依次經過的節點 含根 葉節點 形成樹的一條路徑,最長路徑的長度為樹的深度。例如 給定二叉樹 3,9,20,null,null,15,7 返回它的最大深度 3 根節點加上左右子樹的最大深度就是樹的最大深度。如下 class solution ...