找出树的最小层数。
注意点:
1.判断树是否为空。
2.如果当前层数大于等于已找出的最小层数,则停止向下搜索。
3.提前判断子节点是否为空,减少递归次数。
代码:
intminLevel=999;
voidtrval(TreeNode* t,intlevel)
{
if(level>=minLevel)
return;
if(t->left==NULL&& t->right==NULL)
{
minLevel=level<minLevel?level:minLevel;
}
if(t->left!=NULL)
trval(t->left, level+1);
if(t->right!=NULL)
trval(t->right, level+1);
}
intminDepth(TreeNode* root) {
if(root==NULL)
return0;
trval(root,1);
return minLevel;
}