首页 > 其他分享 >549. Binary Tree Longest Consecutive sequence

549. Binary Tree Longest Consecutive sequence

时间:2024-01-17 21:15:39浏览次数:20  
标签:Binary right TreeNode val sequence Tree root public left

给定一棵二叉树,求其最长连续数字路径(指的是形如x , x + 1 , x + 2 , . . . , x + k x,x+1,x+2,...,x+kx,x+1,x+2,...,x+k的路径)的长度。路径可以由任一点出发,任一点结束。

public class ShowMeBug {
    public static class TreeNode {
        public int val;
        public TreeNode left;
        public TreeNode right;

        public TreeNode(int val) {
            this.val = val;
        }
    }

    public static void main(String[] args) {
        TreeNode node1 = new TreeNode(4);
        TreeNode node2 = new TreeNode(2);
        TreeNode node3 = new TreeNode(5);
        TreeNode node4 = new TreeNode(1);
        TreeNode node5 = new TreeNode(3);
        node1.left = node2;
        node1.right = node3;
        node2.left = node4;
        node2.right = node5;
        ShowMeBug showMeBug = new ShowMeBug();
        int max = showMeBug.getTreeMaxSerLength(node1);
        System.out.println(max);
    }

    public int getTreeMaxSerLength(TreeNode root) {
        dfs(root, 1);
        return maxLength;
    }

    int maxLength = 1;

    public void dfs(TreeNode root, int length) {
        if (root == null) {
            return;
        }
        if (root.left != null) {
            if (root.left.val - root.val == 1) {
                maxLength = Math.max(maxLength, length + 1);
                dfs(root.left, length + 1);
            } else {
                dfs(root.left, 1);
            }
        }
        if (root.right != null) {
            if (root.right.val - root.val == 1) {
                maxLength = Math.max(maxLength, length + 1);
                dfs(root.right, length + 1);
            } else {
                dfs(root.right, 1);
            }
        }

    }

}

。。。

标签:Binary,right,TreeNode,val,sequence,Tree,root,public,left
From: https://www.cnblogs.com/guoyu1/p/17971177

相关文章

  • 【学习笔记】Segment Tree Beats/吉司机线段树
    一.区间最值操作本文对吉如一老师在\(2016\)年国家集训队论文中的线段树处理历史区间最值的问题的一些杂谈。区间最值笼统地指求区间的最值以及区间所有数对\(x\)取最值(即令\(a_i=\max/\min(a_i,x)\))这一类的查询与修改操作。HDU5306GorgeousSequence支持对区间......
  • Elementui中el-tree获取节点的选中、设置节点的选中
    this.$refs.tree.getCheckedNodes()//返回的是数组,包含所有选中的节点,不只是叶子节点。this.$refs.tree.setCheckedKeys(ids)//传递的是叶子节点的id合集例子:/***节点被点击时的回调*@paramdata-传递给data属性的数组中该节点所对应的对象*/nodeClick(data){c......
  • Android gradle dependency tree change(依赖树变化)监控实现,sdk version 变化一目了然
    @目录前言基本原理执行流程diff报告不同分支merge过来的diff报告同个分支产生的merge报告同个分支提交的diff报告具体实现原理我们需要监控怎样的Dendenpency变化怎样获取dependencyTreeproject.configurations方式./gradlewdependenciesAsciiDependencyReportRe......
  • 无涯教程-SQL - Sequences(序列)
    序列是按需生成的一组整数1、2、3,...。序列在数据库中经常使用,因为许多应用程序要求表中的每一行都包含唯一值。本章介绍如何在MySQL中使用序列。AUTO_INCREMENT列MySQL中使用序列的最简单方法是将一列定义为AUTO_INCREMENT,其余部分留给MySQL处理。试试下面的例子,这将创建一......
  • SourceTree提交快捷键(Ctrl+Enter)无效问题问题
    之前用SourceTree,Ctrl+Enter快速commit。最近更新版本到3.4.16后,突然发现不能用了。更新大概是跨了几个小版本。。。在atlassian论坛里发现,这个果然就是更新的变更(我不是一个人.jpg)。目前大概有两个方法解决:回退到3.4.15或之前的版本。从旧的安装包(3.4.15)里提取两个dll进......
  • JMeter 源码解读 - HashTree
    背景:在JMeter中,HashTree是一种用于组织和管理测试计划元素的数据结构。它是一个基于LinkedHashMap的特殊实现,提供了一种层次结构的方式来存储和表示测试计划的各个组件。HashTree的特点如下:层次结构:HashTree使用树状结构来组织测试计划元素。每个节点都可以包含子节点......
  • MYSQL的B+Tree索引树高度如何计算
    前一段被问到一个平时没有关注到有关于MYSQL索引相关的问题点,被问到一个表有3000万记录,假如有一列占8位字节的字段,根据这一列建索引的话索引树的高度是多少?这一问当时就被问蒙了,平时这也只关注MySQL索引一般都是都是用B+Tree来存储维护索引的,还有一些复合索引的最左匹配原则等等,......
  • POJ1635subway tree system
    在扫描过程中一旦扫描到一个子串01数量相等了,这个时候肯定是已经递归回到根节点了,因为从根节点下去的一步操作给了一个0,而这个0一定要从这条边回到根节点才能产生一个1与其匹配(这个1不可能来自其他边的回溯,因为其他边的回溯的前提就是之前从这条边下去了,就会产生一个0,,这个0就要......
  • ARC151D Binary Representations and Queries
    ARC151DBinaryRepresentationsandQueries题目链接:ARC151DBinaryRepresentationsandQueries非常好思维题。思路首先我们会发现每个操作都是\(\frac{n}{2}\)的\(A_i\),给另外\(\frac{n}{2}\)的\(A_j\)的增加。这题直接去维护每个操作时间复杂度会开心的笑。所以......
  • 【树上启发式合并】CF1709E XOR Tree
    XORTree\(\mathtt{TAGS}\):树上启发式合并+异或+贪心\(\mathtt{ESTIMATION}\):非常好的启发式合并题目First.如何去除\(0\)路径对于一条路径\(u\tov\),要使其不为\(0\)肯定是将\(\mathtt{LCA}(u,v)\)变为\(2^{30+x}\)最好,这样异或值的第\(30+x\)位一......