力扣111 二叉樹的最小深度(理解遞迴結束條件)

2021-10-05 06:01:11 字數 846 閱讀 7687

力扣111. 二叉樹的最小深度(理解遞迴結束條件)

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

最小深度是從根節點到最近葉子節點的最短路徑上的節點數量。

說明: 葉子節點是指沒有子節點的節點。

示例:給定二叉樹 [3,9,20,null,null,15,7],

3/ \

9  20

/  \

15   7

返回它的最小深度  2.

思路:題目中說明:葉子節點是指沒有子節點的節點,這句話的意思是 1 不是葉子節點

題目問的是到葉子節點的最短距離,所以所有返回結果為 1 當然不是這個結果

另外這道題的關鍵是搞清楚遞迴結束條件

葉子節點的定義是左孩子和右孩子都為 null 時叫做葉子節點

當 root 節點左右孩子都為空時,返回 1

當 root 節點左右孩子有乙個為空時,返回不為空的孩子節點的深度

當 root 節點左右孩子都不為空時,返回左右孩子較小深度的節點值

#include "stdafx.h"

#include#include#include using namespace std;

struct treenode

};class solution

};int main()

; p[0].left = &p[1]; p[0].right = &p[2];

p[2].left = &p[3]; p[2].right = &p[4];

solution s;

auto result = s.mindepth(p);

return 0;

}

111 二叉樹的最小深度

給定乙個二叉樹,找出其最小深度。最小深度是從根節點到最近葉節點的最短路徑的節點數量。解題思路 這題我想了很久。大概還是對遞迴不太熟悉吧。下面講解一下遞迴的思路 1.如果根節點是null,說明沒有深度。2.如果節點的左右兒子都不存在,說明只有自己,節點深度為1.3.如果節點沒有左兒子,但是有右兒子怎麼...

111 二叉樹的最小深度( )

給定乙個二叉樹,找出其最小深度。最小深度是從根節點到最近葉子節點的最短路徑上的節點數量。說明 葉子節點是指沒有子節點的節點。示例 給定二叉樹 3,9,20,null,null,15,7 3 920 157返回它的最小深度 2.注意 它是到最近的葉子節點,要多考慮根節點 class solution ...

111 二叉樹的最小深度

給定乙個二叉樹,找出其最小深度。最小深度是從根節點到最近葉子節點的最短路徑上的節點數量。說明 葉子節點是指沒有子節點的節點。示例 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7返回它的最小深度 2.思路 求樹深用dfs,遞迴遍歷左子樹右子樹,取最小的深度。defini...