二叉树根结点到叶节点的最短距离

参考: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

 

 
posted @ 2021-06-06 02:21  苗妙苗  阅读(213)  评论(0编辑  收藏  举报