原題鏈結
題目描述:
給定乙個二叉樹,找出其最小深度。
最小深度是從根節點到最近葉子節點的最短路徑上的節點數量。
說明: 葉子節點是指沒有子節點的節點。
示例:給定二叉樹 [3,9,20,null,null,15,7],
返回它的最小深度 2.3
/ \
9 20
/ \
15 7
解題思路:
dfs即可,只不過注意一下測試用例【1,2】這種情況,官方題解給出的答案結果為1,但是實際上深度為2,注意一下葉子結點的定義。
**:
/**
* definition for a binary tree node.
* struct treenode
* };
*/class
solution
//遞迴結束條件
if(root-
>left ==
null
&& root-
>right ==
null
)int m1 =
mindepth
(root-
>left)
;int m2 =
mindepth
(root-
>right)
;//下面的兩個if語句是為了左右節點任意乙個節點為空的情況下
if(m1 ==0)
if(m2 ==0)
//如果均不為空
return
min(m1,m2)+1
;}};
(力扣每日一題)不同的二叉搜尋樹 II
二叉搜尋樹有以下幾個特點 1 左邊的小於當前 2 右邊的大於當前 3 沒有重複的值。為了符合二叉搜尋樹的這幾個特點,我們需要知道當前的範圍。要知道開頭和結尾 最開始是1和n 1 首先定義乙個字典儲存已遍歷的引數和結果以免重複。2 特殊情況判斷 如果n 0,返回,如果不判斷則會返回 none 執行遞迴...
每日刷題 二叉樹的最小深度
給定乙個二叉樹,找出其最小深度。最小深度是從根節點到最近葉子節點的最短路徑上的節點數量。說明 葉子節點是指沒有子節點的節點。示例 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7 返回它的最小深度 2.解答 這道題的關鍵在於,對於某乙個結點,針對不同的情況的處理。當結點...
每日一題 重建二叉樹
題目 輸入某二叉樹的先序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的先序遍歷和中序遍歷的結果中都不含重複的數字。例如 前序遍歷序列 1,2,4,7,3,5,6,8 和中序遍歷序列 4,7,2,1,5,3,8,6 重建出下圖所示的二叉樹並輸出它的頭結點。param preorder 先序遍歷 p...