LeetCode系列111 二叉樹的最小深度

2021-10-10 14:49:29 字數 1228 閱讀 7963

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

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

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

方法一:dfs

class

solution

if(root-

>left ==

nullptr

&& root-

>right ==

nullptr

)int min_depth = int_max;

if(root-

>left !=

nullptr)if

(root-

>right !=

nullptr

)return min_depth +1;

}};

方法二:bfs+記錄每個節點的深度

class

solution

queue,int

>

> que;

que.

emplace

(root,1)

;while

(!que.

empty()

)if(node-

>left !=

nullptr)if

(node-

>right !=

nullptr)}

return0;

}};

方法三:bfs+記錄佇列長度

/**

* definition for a binary tree node.

* struct treenode

* treenode(int x) : val(x), left(nullptr), right(nullptr) {}

* treenode(int x, treenode *left, treenode *right) : val(x), left(left), right(right) {}

* };

*/class

solution

depth++;}

return depth;}}

;

方法二和方法三相比,空間複雜度更高,因為要儲存每個節點的深度,但是時間複雜度低,因為不用每次迴圈時求佇列的長度

leetcode 111 二叉樹的最小深度

題目描述 給定乙個二叉樹,找出其最小深度。最小深度是從根節點到最近葉子節點的最短路徑上的節點數量。說明 葉子節點是指沒有子節點的節點。示例 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7返回它的最小深度 2.思路 採用後序遍歷,當前結點的深度最小深度等於左右子樹較小深...

LeetCode111 二叉樹的最小深度

解析 求二叉樹的最小深度,即求從根節點到任一子節點,深度的最小值。本題類似求二叉樹的最大深度,都是用遞迴求解。二叉樹的最大深度 分別求出根節點左孩子和右孩子的深度,然後將兩者中較大值加1返回即可。同樣的,求解二叉樹的最小深度,我們要比較兩者中的較小值加1返回。但還有一點要注意,就是如果一棵二叉樹只有...

LeetCode 111 二叉樹的最小深度

給定乙個二叉樹,找出其最小深度。最小深度是從根節點到最近葉子節點的最短路徑上的節點數量。說明 葉子節點是指沒有子節點的節點。示例 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7 返回它的最小深度 2.如果節點是空,那麼返回0 如果節點左右子樹都為空,那麼返回1 如果節...