本文共 811 字,大约阅读时间需要 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: int minDepth(TreeNode* root) { if(root==NULL) return 0; //左孩子和有孩子都为空的情况,说明到达了叶子节点,直接返回1即可 if(root->left==NULL&&root->right==NULL) return 1; int left = minDepth(root->left); int right = minDepth(root->right); //这里其中一个节点为空,说明m1和m2有一个必然为0,所以可以返回left + right + 1; if(root->left==NULL||root->right==NULL) return left+right+1; //左右孩子有一个为空,返回较小的那个 return min(left,right)+1; }};
转载地址:http://umgyk.baihongyu.com/