LeetCode 111. 二叉樹的最小深度
阿新 • • 發佈:2018-12-11
111. 二叉樹的最小深度
給定一個二叉樹,找出其最小深度。
最小深度是從根節點到最近葉子節點的最短路徑上的節點數量。
說明: 葉子節點是指沒有子節點的節點。
示例:
給定二叉樹 [3,9,20,null,null,15,7]
,
3 / \ 9 20 / \ 15 7
返回它的最小深度 2.
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: void find(TreeNode* p,int high,vector<int>& height){ if(p->left != NULL) find(p->left,high + 1,height); if(p->right != NULL) find(p->right,high + 1,height); if(p->left == NULL && p->right == NULL) height.push_back(high); } int minDepth(TreeNode* root) { vector<int>height; if(root == NULL) return 0; find(root,1,height); int min = height[0]; for(int i = 1;i < height.size();i++) if(height[i] < min) min = height[i]; return min; } };