LintCode 二叉樹的最小深度

2021-07-30 06:00:20 字數 619 閱讀 4949

題目描述:

給定乙個二叉樹,找出其最小深度。

二叉樹的最小深度為根節點到最近葉子節點的距離。

樣例:給出一棵如下的二叉樹:

1/     \ 

2       3

/    \

4      5  

這個二叉樹的最小深度為 2

做題思路:

如果根結點為空,返回0,若左子樹為空,就用遞迴函式遍歷右子樹並加1,返回記錄深度,如果右子樹為空,就遍歷左子樹,遞迴返回記錄深度,若兩者都不為空,就先遍歷左子樹,再遍歷右子樹,返回記錄深度,比較深度大小,返回小的值。

關鍵**:

class solution

if(root->right==null)

int l=mindepth(root->left);

int r=mindepth(root->right);

int s=min(l,r)+1;

return s;}};

做題感受:沒有查答案並且自己寫的時候忽略了乙個問題,如果遍歷的時候左子樹為空而右子樹不為空的情況,和右子樹為空而左子樹不為空的情況,測試資料的時候,**用了乙個根節點沒有左孩子的樹來測試,返回的是0,而不是正常的最小深度,就填上了判斷是否為空的語句。

lintcode練習 155 二叉樹的最小深度

二叉樹的最小深度為根節點到最近葉子節點的距離。是樣例 給出一棵如下的二叉樹 2 3 4 5 這個二叉樹的最小深度為 2 解題思路 利用了二叉樹的層次遍歷的思想,在每一層的遍歷中都判斷一下是否有葉子結點,如果有葉子結點,則返回該層深度。definition of treenode class tree...

lintcode 二叉樹的最小深度

1.題目 給定乙個二叉樹,找出其最小深度。二叉樹的最小深度為根節點到最近葉子節點的距離。樣例 給出一棵如下的二叉樹 1 2 3 4 5 這個二叉樹的最小深度為 2 2.思路 先考慮空樹,返回0 考慮是否為左右斜樹,則直接遞迴求深度即可 考慮非空樹時,遞迴,在回溯過程中不斷比較左右子樹深度,每次取較小...

Lintcode 二叉樹的最小深度

給定乙個二叉樹,找出其最小深度。二叉樹的最小深度為根節點到最近葉子節點的最短路徑上的節點數量。樣例 1 輸入 輸出 0樣例 2 輸入 輸出 3 解釋 1 2 3 它將被序列化為樣例 3 輸入 輸出 2 解釋 1 2 3 4 5 它將被序列化為python definition of treenode...