当前位置: 首页 > news >正文

代码随想三刷二叉树篇4

代码随想三刷二叉树篇4

  • 617. 合并二叉树
    • 题目
    • 代码
  • 700. 二叉搜索树中的搜索
    • 题目
    • 代码
  • 98. 验证二叉搜索树
    • 题目
    • 代码
  • 530. 二叉搜索树的最小绝对差
    • 题目
    • 代码
  • 501. 二叉搜索树中的众数
    • 题目
    • 代码
  • 236. 二叉树的最近公共祖先
    • 题目
    • 代码

617. 合并二叉树

题目

链接

代码

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {public TreeNode mergeTrees(TreeNode root1, TreeNode root2) {if(root1==null&&root2==null){return null;}if(root1==null){return root2;}if(root2==null){return root1;}root1.val += root2.val;TreeNode left = mergeTrees(root1.left,root2.left);TreeNode right = mergeTrees(root1.right,root2.right);root1.left = left;root1.right = right;return root1;}
}

700. 二叉搜索树中的搜索

题目

链接

代码

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {public TreeNode searchBST(TreeNode root, int val) {if(root==null){return null;}if(root.val==val){return root;}if(val>root.val){return searchBST(root.right,val);}else{return searchBST(root.left,val);}}
}

98. 验证二叉搜索树

题目

链接

代码

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {public boolean isValidBST(TreeNode root) {traverse(root);return isValidBST;}boolean isValidBST = true;TreeNode pre = null;public void traverse(TreeNode root){if(root==null||!isValidBST){return;}traverse(root.left);if(pre!=null&&pre.val>=root.val){isValidBST = false;}pre = root;traverse(root.right);}
}

530. 二叉搜索树的最小绝对差

题目

链接

代码

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {public int getMinimumDifference(TreeNode root) {traverse(root);return minNum==Integer.MAX_VALUE?0:minNum;}TreeNode pre = null;int minNum = Integer.MAX_VALUE;public void traverse(TreeNode root){if(root==null){return;}traverse(root.left);if(pre!=null){minNum = Math.min(minNum,root.val-pre.val);}pre = root;traverse(root.right);}
}

501. 二叉搜索树中的众数

题目

链接

代码

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {public int[] findMode(TreeNode root) {traversal(root);pq.offer(new int[]{cur,count});//最后一次没有添加List<Integer> result = new ArrayList();int maxCount = 0;while(!pq.isEmpty()){int[] temp = pq.poll();if(temp[1]>=maxCount){maxCount = temp[1];result.add(temp[0]);}else{break;}}return result.stream().mapToInt(i->i).toArray();}PriorityQueue<int[]> pq = new PriorityQueue<>((e1,e2)->e2[1]-e1[1]);int cur =0;int count = 0;TreeNode pre = null;public void traversal(TreeNode root){if(root==null){return;}traversal(root.left);if(pre==null){cur = root.val;count++;}else{if(cur == root.val){count++;}else{pq.offer(new int[]{cur,count});cur = root.val;count = 1;}}pre = root;traversal(root.right);}
}

236. 二叉树的最近公共祖先

题目

链接

代码

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode(int x) { val = x; }* }*/
class Solution {public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {if(root==null||root==p||root==q){return root;}TreeNode left = lowestCommonAncestor(root.left,p,q);TreeNode right = lowestCommonAncestor(root.right,p,q);if(left==null&&right==null){return null;}else if(left!=null&&right==null){return left;}else if(right!=null&&left==null){return right;}else {return root;}}}

相关文章:

  • 外观模式(大话设计模式)C/C++版本
  • U-Net for Image Segmentation
  • 【系统架构设计师】二、操作系统知识(操作系统概述|进程管理)
  • 决策树学习
  • 非关系型数据库NoSQL数据层解决方案 之 Mongodb 简介 下载安装 springboot整合与读写操作
  • 2024.06.20【读书笔记】丨生物信息学与功能基因组学(第十六章 真核生物基因组 第三部分)【AI测试版】
  • 【CT】LeetCode手撕—42. 接雨水
  • 计算机网络(谢希仁第六版)| 课后习题与答案 | 物理层 | 题目知识点详细分析
  • sql常用的函数与代码示例
  • vlcplayer for android 源码编译log打印
  • JupyterLab使用指南(二):JupyterLab基础
  • C语言| 数组的折半查找
  • DM8的列存储HUGE表
  • java基于ssm+jsp 母婴用品网站
  • QT_day1
  • [ 一起学React系列 -- 8 ] React中的文件上传
  • [分享]iOS开发 - 实现UITableView Plain SectionView和table不停留一起滑动
  • 【划重点】MySQL技术内幕:InnoDB存储引擎
  • angular组件开发
  • bearychat的java client
  • Consul Config 使用Git做版本控制的实现
  • cookie和session
  • Docker入门(二) - Dockerfile
  • java正则表式的使用
  • Linux学习笔记6-使用fdisk进行磁盘管理
  • rabbitmq延迟消息示例
  • Webpack4 学习笔记 - 01:webpack的安装和简单配置
  • 分布式任务队列Celery
  • 分享自己折腾多时的一套 vue 组件 --we-vue
  • 可能是历史上最全的CC0版权可以免费商用的图片网站
  • 跨域
  • 你不可错过的前端面试题(一)
  • 前端存储 - localStorage
  • 容器化应用: 在阿里云搭建多节点 Openshift 集群
  • 微信小程序:实现悬浮返回和分享按钮
  • 延迟脚本的方式
  • 自动记录MySQL慢查询快照脚本
  • Unity3D - 异步加载游戏场景与异步加载游戏资源进度条 ...
  • ​Java基础复习笔记 第16章:网络编程
  • ​直流电和交流电有什么区别为什么这个时候又要变成直流电呢?交流转换到直流(整流器)直流变交流(逆变器)​
  • #NOIP 2014# day.1 T2 联合权值
  • #Ubuntu(修改root信息)
  • (pytorch进阶之路)CLIP模型 实现图像多模态检索任务
  • (二)pulsar安装在独立的docker中,python测试
  • (附源码)ssm航空客运订票系统 毕业设计 141612
  • (附源码)基于SSM多源异构数据关联技术构建智能校园-计算机毕设 64366
  • (算法)大数的进制转换
  • (一)、python程序--模拟电脑鼠走迷宫
  • (转)C语言家族扩展收藏 (转)C语言家族扩展
  • .NET Core MongoDB数据仓储和工作单元模式封装
  • .net core 源码_ASP.NET Core之Identity源码学习
  • .Net下的签名与混淆
  • /proc/stat文件详解(翻译)
  • @Documented注解的作用
  • @KafkaListener注解详解(一)| 常用参数详解