[leetcode] 5. Minimum Depth of Binary Tree
二叉树基本功练习题,题目如下:
Given a binary tree, find its minimum depth.
The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf node.
就是找最短的那条从根到叶,跟上一道题一样直接那递归上就行。解法如下:
/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: void minDepth(TreeNode *temp, int count, int &min) { if (temp != NULL) { if (temp->left == NULL && temp->right == NULL) { min = min > count ? count : min; } minDepth(temp->left, count + 1, min); minDepth(temp->right, count + 1, min); } } int minDepth(TreeNode *root) { if (root == NULL) { return 0; } int min = 2147483647; minDepth(root, 1, min); return min; } };
就是这样,拿count来计数,然后把min的地址传参进去,每到底部叶子的时候判断一次大小。