当前位置: 首页 > 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;}}}
http://www.lryc.cn/news/379767.html

相关文章:

  • 『大模型笔记』如何让小型语言模型发挥作用!
  • jnp.diag
  • bert文本分类微调笔记
  • 运维:k8s常用命令大全
  • PHP基础之错误与异常
  • 详解Spring AOP(一)
  • 读者写者问题(读者优先、公平竞争、写者优先)
  • Springboot开发之 Excel 处理工具(二)-- Easyexcel
  • 6月27日云技术研讨会 | 中央集中架构新车型功能和网络测试解决方案
  • 微信小程序生命周期
  • 【JS重点15】原型对象概述
  • Java之Hutool/Guava/Apache Commons工具包项目实践
  • 哈喽GPT-4o——对GPT-4o 提示词的思考与看法
  • 《计算机英语》 Unit 3 Software Engineering 软件工程
  • 2024-6-18(沉默Spring,Springboot)
  • Java热部署:让应用更新如丝般顺滑,告别繁琐重启!
  • 微信小程序毕业设计-小区疫情防控系统项目开发实战(附源码+论文)
  • PyTorch -- RNN 快速实践
  • SpringBoot 快速入门(保姆级详细教程)
  • 【第18章】Vue实战篇之登录界面
  • [C++]使用C++部署yolov10目标检测的tensorrt模型支持图片视频推理windows测试通过
  • 分享uniapp + Springboot3+vue3小程序项目实战
  • Ubuntu 24.04安装zabbix7.0.0图形中文乱码
  • MybatisPlus 调用 原生SQL
  • 1.SG90
  • 【yolov8语义分割】跑通:下载yolov8+预测图片+预测视频
  • 基于STM8系列单片机驱动74HC595驱动两个3位一体的数码管
  • Jlink下载固件到RAM区
  • Kotlin基础——Typeclass
  • DC-DC 高压降压、非隔离AC-DC、提供强大的动力,选择优质电源芯片-(昱灿)