12
返回列表 发新帖
楼主: caffery24
跳转到指定楼层
上一主题 下一主题
收起左侧

虽然很懒,开一个帖子监督自己刷LEETCODE吧

🔗
 楼主| caffery24 2015-6-5 22:24:58 | 只看该作者
全局:
111        Minimum Depth of Binary Tree
就是在上一个maxdepth上的一点改动,需要加两个判别条件,来区分null的节点带来的0

程序:
public class Solution {
    public int minDepth(TreeNode root) {
        if(root==null)
        return 0;
        else
        {
            int left=minDepth(root.left);
            int right=minDepth(root.right);
            if(left==0&&right!=0) return right+1;
            else if(right==0&&left!=0) return left+1;
            return Math.min(left,right)+1;
        }
    }
}
回复

使用道具 举报

🔗
 楼主| caffery24 2015-6-5 22:26:29 | 只看该作者
全局:
112 PATH SUM
自己的写法简直惨不忍睹。。。采用了一个个加,最后看是不是的写法

程序:
public class Solution {
    private int total=0;private int flag=0;
    public boolean hasPathSum(TreeNode root, int sum) {
        if(root==null)
        return false;
        else
        {
            visited(root,sum);
        }
        if(flag==-1)
        return true;
        else
        return false;
        
    }
    public void visited(TreeNode node,int sum)
    {  total=total+node.val;
        if(node.left!=null&&flag!=-1)
        {
             visited(node.left,sum);
        }
        if(node.right!=null&&flag!=-1)
        {
            visited(node.right,sum);
        }
        if(sum==total&&node.left==null&&node.right==null)
        {
            flag=-1;
        }
        else if(flag!=-1)
        total=total-node.val;
        
        
    }
}

然后看了看大神们简介的写法:
//九章DFS模板  dfs的结束条件是root没有子节点(root是叶子)
//然后 不用写for循环 因为是二叉树 只要分别递归左右子节点当新root即可。
//记得 (不管这个递归方法是怎么结束的 因为 只有一个onePath作为单条path的缓存
//                所以递归方法啊结束时候都要 onePath.remove(onePath.size()-1);
public class PathSum {
        public boolean hasPathSum(TreeNode root, int sum) {

                if (root == null) {
                        return false;
                }

                sum = sum - root.val;
                // 结束条件 当 到叶子节点时候sum==0
                if (root.left == null && root.right == null) {
                        if (sum == 0) {
                                return true;
                        }
                }
     if(hasPathSum(root.left,sum)){return true;}
     if( hasPathSum(root.right, sum)){return true;}
     return false;
        }
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表