###### tags: `LeetCode` `Tree` `Easy` `Recursion` # LeetCode #111 [Minimum Depth of Binary Tree](https://leetcode.com/problems/minimum-depth-of-binary-tree/) ### (Easy) 給定一個二元樹,找出其最小深度。 最小深度是從根節點到最近葉子節點的最短路徑上的節點數量。 說明:葉子節點是指沒有子節點的節點。 --- 一樣是判斷條件很多的遞迴題 尋找到葉節點的最短路徑, 判斷條件如下: ``` 若該節點的左右子節點皆不存在, 則該節點為葉節點, 此時回傳1 若該節點的其中一子節點存在而另一子節點不存在, 則該節點的高度為存在子節點的高度+1 若該節點的左右子節點皆存在, 則回傳兩子節點的最小路徑其中較小的值+1 ``` --- ``` class Solution { public: int minDepth(TreeNode* root) { if(!root)return 0; return minpathtoleaf(root); } int minpathtoleaf(TreeNode* node){ if(node&&node->left==nullptr&&node->right==nullptr)return 1; else if(node->left&&!node->right)return minpathtoleaf(node->left)+1; else if(!node->left&&node->right)return minpathtoleaf(node->right)+1; else return min(minpathtoleaf(node->left),minpathtoleaf(node->right))+1; } }; ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up