首页 > 其他 > 详细

5398.统计二叉树中好节点的数目

时间:2020-05-17 21:41:54      阅读:58      评论:0      收藏:0      [点我收藏+]

技术分享图片
技术分享图片

提示

1.二叉树中节点数目范围是 [1, 10^5] 。
2.每个节点权值的范围是 [-10^4, 10^4] 。

核心思路

  • 二叉树+DFS

代码

    //2ms    
    int ans = 0;
    public int goodNodes(TreeNode root) {
        int max=root.val;
        TreeNode pre=root;
        dfs(root, max,pre,root);
        return ans;
    }

    public void dfs(TreeNode node,int max,TreeNode pre,TreeNode root){
        max=Math.max(node.val,max);
        if(node.val==max){
            ans++;
        }
        if(node.left!=null){
            pre=node;
            if(pre==root) max=root.val;
            dfs(node.left,max,pre,root);
        }
        if(node.right!=null){
            pre=node;
            if(pre==root) max=root.val;
            dfs(node.right, max,pre,root);
        }
    }

优化

    static int ans;
    public int goodNodes(TreeNode root) {
        ans = 0;
        dfs(root, Integer.MIN_VALUE);
        return ans;
    }
    
    private void dfs(TreeNode root, int cur_Max) {   //cur_Max记录节点之前的最大值
        if (root == null) return ;
        cur_Max = Math.max(cur_Max, root.val);  //当root.val >= cur_Max, cur_Max赋予当前节点的值,即cur_Max == root.val,该节点为“好节点”
        if (cur_Max == root.val) ans++;  
        dfs(root.left, cur_Max);
        dfs(root.right, cur_Max);
    }

作者:imaginee
链接:https://leetcode-cn.com/problems/count-good-nodes-in-binary-tree/solution/java-di-gui-de-liang-chong-jie-fa-by-imaginee/

5398.统计二叉树中好节点的数目

原文:https://www.cnblogs.com/yh-simon/p/12906634.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!