leetcode之Minimum Depth of Binary Tree

来源:互联网 发布:位面淘宝txt八零 编辑:程序博客网 时间:2024/05/21 16:21

题目大意:

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.

意思就是:

给定一棵二叉树, 球它的最小高度

解体思路:

DFS. 同时定义一个变量作为当前最小值, 每次求的一条路径, 就和改变量做比较, 最后所有的路径都遍历完之后,就可求得最小值.

代码如下:

/** * Definition for binary tree * struct TreeNode { *     int val; *     TreeNode *left; *     TreeNode *right; *     TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public:    int minDepth(TreeNode *root) {if(!root){return 0;}int depth = 0, min = -1;return binTreePreTravel(root, depth, min);    }int binTreePreTravel(TreeNode* root, int depth, int& min){depth++;if(root->left){binTreePreTravel(root->left, depth, min);}if(root->right){binTreePreTravel(root->right, depth, min);}if(!root->left && !root->right){if(min != -1){min = (min < depth? min: depth);}else if(min == -1){min = depth;}}return min;}};



0 0
原创粉丝点击