收费298教JAVA_【LeetCode(Java) - 298】二叉树最长连续序列

【LeetCode(Java) - 298】二叉树最长连续序列

【LeetCode(Java) - 298】二叉树最长连续序列

文章目录

1、题目描述

2、解题思路

3、解题代码

1、题目描述

bd92b067fd37280b3d847ce17c05bc0a.png

2、解题思路

??简单的 DFS 思路:

??1、定义要给全局变量 maxLength;

??2、设计 dfs 函数,功能为:更新 maxLength 变量,函数内部有一个局部变量 length,如果当前节点比父结点大 1,则 length++,否则 lenfth 置为 1,比较 maxLength 和 length,更新为最大值。

3、解题代码

/**

* Definition for a binary tree node.

* public class TreeNode {

* int val;

* TreeNode left;

* TreeNode right;

* TreeNode(int x) { val = x; }

* }

*/

class Solution {

private int maxLength = 0;

public int longestConsecutive(TreeNode root) {

dfs(root, null, 0);

return maxLength;

}

private void dfs(TreeNode p, TreeNode parent, int length) {

if (p == null) return;

length = (parent != null && p.val == parent.val + 1) ? length + 1 : 1;

maxLength = Math.max(maxLength, length);

dfs(p.left, p, length);

dfs(p.right, p, length);

}

}

【LeetCode(Java) - 298】二叉树最长连续序列相关教程

LeetCode每日一题 (27) 235. 二叉搜索树的最近公共祖先

LeetCode每日一题 (27) 235. 二叉搜索树的最近公共祖先 235. 二叉搜索树的最近公共祖先 这个题目的关键就是 二叉搜索树 (左小右大),需要利用这一个关键信息,要找最近的公共祖先:就是用root当前节点与p和q比较就好,一共用三种情况(1.两个节点都在root的

【LeetCode(Java) - 487】最大连续1的个数 II

【LeetCode(Java) - 487】最大连续1的个数 II 文章目录 1、题目描述 2、解题思路 2.1 数组已知 2.2 数组未知 3、解题代码 3.1 数组已知 3.2 数组未知 1、题目描述 2、解题思路 ??针对每一个 0 都计算出它左右两侧连续的数字 1 的个数,最后返回邻居 1 最多

web前端 --- JavaScrip函数与对象

web前端 --- JavaScrip函数与对象 JavaScrip函数与对象 函数 伪数组arguments 函数:就是将一些语句进行 封装 ,然后通过 调用 的形式,执行这些语句。 作用:将大量重复的语句写在函数里,以后需要这些语句的时候,可以直接调用函数,避免重复劳动;简化编

【LeetCode(Java) - 1258】近义词句子

【LeetCode(Java) - 1258】近义词句子 文章目录 1、题目描述 2、解题思路 3、解题代码 1、题目描述 2、解题思路 ??使用并查集集中管理所有的同义词,然后使用一个 HashMap 存储近义词集合,key 为并查集的 parent,value 为并查集 parent 对应的集合。 ??对

CTF打卡第二天-BUU-Java逆向解密

CTF打卡第二天-BUU-Java逆向解密 解压题目文件发现是一个class文件 使用jad进行反编译,得到Reverse.java文件: 查看Reverse.java文件: // Decompiled by Jad v1.5.8g. Copyright 2001 Pavel Kouznetsov.// Jad home page: http://www.kpdus.com/jad.html// Dec

【LeetCode(Java) - 1244】力扣排行榜

【LeetCode(Java) - 1244】力扣排行榜 文章目录 1、题目描述 2、解题思路 3、解题代码 1、题目描述 2、解题思路 ??1、使用一个 HashMap 存储参赛者信息; ??2、使用一个 Integer[] 存储参赛者分数从大到小排序的结果。 ??3、使用一个 boolean 变量表示从上

电脑同时安装两个版本的JDK后修改JAVA_HOME后java -version 仍然

电脑同时安装两个版本的JDK后,修改JAVA_HOME后,java -version 仍然是之前的JDK版本的解决办法 之前电脑安装了jdk1.8,现在做项目要求用到jdk11,所以又安装了jdk11,但在jdk11的安装和配置成功后,查看jdk的版本仍然是jdk1.8,这说明jdk切换不成功。具体是

leetcode:500. 键盘行

leetcode:500. 键盘行 给定一个单词列表,只返回可以使用在键盘同一行的字母打印出来的单词。键盘如下图所示。 class Solution { public String[] findWords(String[] words) { ListString list = new LinkedList(); for(String str : words){ int first = g

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值