NOWCODER 程式設計題 二叉樹的深度

2021-08-22 15:15:54 字數 468 閱讀 6459

輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點(含根、葉結點)形成樹的一條路徑,最長路徑的長度為樹的深度。

二叉樹節點定義:

struct treenode 

};

方法一  遞迴:二叉樹為空時,返回0;否則,二叉樹的深度(高度)等於二叉樹左子樹高度和右子樹高度中較大值加上1(加上乙個根節點),然後左子樹的高度又等於左子樹的左子樹高度和左子樹的右子樹的高度中較大值加1....這是乙個不斷求解子問題的過程,也就是遞迴。

class solution 

};

方法二  非遞迴:建立乙個佇列用來進行層序遍歷二叉樹,每次帶入一層節點進去佇列中,記錄二叉樹的層數(即深度),具體看以下**。

class solution 

}return depth;

}};

程式設計題 二叉樹

時間限制 3秒 空間限制 32768k 有一棵二叉樹,樹上每個點標有權值,權值各不相同,請設計乙個演算法算出權值最大的葉節點到權值最小的葉節點的距離。二叉樹每條邊的距離為1,乙個節點經過多少條邊到達另乙個節點為這兩個節點之間的距離。給定二叉樹的根節點root,請返回所求距離。強調一點 我就是被卡在這...

重建二叉樹 程式設計題

題目 輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建該二叉樹,假設輸入的前序遍歷和中序遍歷的結果中都不含有重複值。前序遍歷 中序遍歷 主要思路 1.前序遍歷的第乙個元素是根節點,將根初始化。2.在中序遍歷中找到根的位置,根的左邊是左子樹,右邊是右子樹。3.然後左右遞迴。btnode reconstr...

(二叉樹提高題)還原二叉樹

給定一棵二叉樹的先序遍歷序列和中序遍歷序列,要求計算該二叉樹的高度。輸入格式 輸入首先給出正整數n 50 為樹中結點總數。下面兩行先後給出先序和中序遍歷序列,均是長度為n的不包含重複英文本母 區別大小寫 的字串。輸出格式 輸出為乙個整數,即該二叉樹的高度。輸入樣例 9 abdfghiec fdhgi...