1. 程式人生 > 遊戲 >《英雄薩姆:西伯利亞狂想曲》前10分鐘實機演示公開

《英雄薩姆:西伯利亞狂想曲》前10分鐘實機演示公開

111. 二叉樹的最小深度

題目:

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

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

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



示例 1:


輸入:root = [3,9,20,null,null,15,7]
輸出:2
示例 2:

輸入:root = [2,null,3,null,4,null,5,null,6]
輸出:5


提示:

樹中節點數的範圍在 [0, 105] 內
-1000 <= Node.val <= 1000

題解:

 1 /**
 2  * Definition for a binary tree node.
 3  * struct TreeNode {
 4
* int val; 5 * TreeNode *left; 6 * TreeNode *right; 7 * TreeNode(int x) : val(x), left(NULL), right(NULL) {} 8 * }; 9 */ 10 class Solution { 11 public: 12 int minDepth(TreeNode* root) 13 { 14 if(!root) return 0; 15 int lnode = minDepth(root->left), rnode = minDepth(root->right);
16 if(lnode && rnode) return min(lnode, rnode) + 1; 17 return lnode ? lnode + 1 : lnode + rnode + 1; 18 } 19 };