劍指offer38 二叉樹的深度 題解

2022-07-26 12:54:14 字數 657 閱讀 9706

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

輸入

返回值

4
此樹的深度=左子樹的深度與右子樹的深度中的最大值 +1。

/**

1.時間複雜度:o(n)

n 為樹的節點數量,計算樹的深度需要遍歷所有節點。

2.空間複雜度:o(n)

最差情況下(當樹退化為鍊錶時),遞迴深度可達到 n 。

**/class solution

return 1 + max(treedepth(proot->left), treedepth(proot->right));

}};

/**

1.時間複雜度 o(n): n 為樹的節點數量,計算樹的深度需要遍歷所有節點。

2.空間複雜度 o(n): 最差情況下(當樹平衡時),佇列 queue 同時儲存 n/2 個節點。

**/class solution

level += 1;

}return level;

}};

劍指offer 38 二叉樹的深度

題目 輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點 含根 葉結點 形成樹的一條路徑,最長路徑的長度為樹的深度。思路 求深度,第一次能想到的方法就是遞迴,但是除了遞迴還有層次遍歷,本文提供遞迴和層次遍歷兩種解法。遞迴思想就是 求左右子樹,然後深度各加一,再比較哪個大,然後返回哪個。層次...

劍指offer 38 二叉樹的深度

輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點 含根 葉結點 形成樹的一條路徑,最長路徑的長度為樹的深度。時間限制 1秒 空間限制 32768k 熱度指數 122264 廣度遍歷,佇列儲存結點,變數lh儲存上一行的最後乙個結點的位置,變數num儲存已經入隊的結點數量 當訪問的結點為上一...

劍指offer 38 二叉樹的深度

38.二叉樹的深度 輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點 含根 葉結點 形成樹的一條路徑,最長路徑的長度為樹的深度。struct treenode 1 class solution else 13 14 return 0 15 16 17 int treedepth tree...