参考:https://blog.csdn.net/weixin_41050155/article/details/83834623
给定一棵二叉树,找出它的最小深度。最小深度是沿着从根节点到最近叶节点的最短路径的节点数目。
复习时不会的地方:不知道距离怎么递归,是左右分别+1。(左边不行去右边,此时有必要区分左右)
思路:不是比较max value什么的,而是递归
- 当节点左右子树都为null时,返回0
- 当左子树为null,返回右子树递归+1;
- 当右字数为null,返回左子树递归+1;
- 当左右子树都不为空,返回左右子树递归最小值。
public class Solution {
public int run(TreeNode root) {
//当节点左右子树都为null时,返回0
if(root==null)
return 0;
//当左子树为null,返回右子树递归+1;
if(root.left==null)
return run(root.right)+1;
//当右字数为null,返回左子树递归+1;
if(root.right==null)
return run(root.left)+1;
//当左右子树都不为空,返回左右子树递归最小值。
int right=run(root.right)+1;
int left=run(root.left)+1;
return left>right?right:left;
}
}
————————————————
版权声明:本文为CSDN博主「Cynthia_wpp」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_41050155/article/details/83834623