【二叉树part06】| 654.最大二叉树、617.合并二叉树、700.二叉搜索树中的搜索、98.验证二叉搜索树

news/2024/10/24 11:17:36/

目录

🎈LeetCode654.最大二叉树

🎈LeetCode617.合并二叉树

🎈LeetCode700. 二叉搜索树中的搜索

🎈LeetCode98. 验证二叉搜索树


🎈LeetCode654.最大二叉树

链接:654.最大二叉树

给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建:

  1. 创建一个根节点,其值为 nums 中的最大值。
  2. 递归地在最大值 左边 的 子数组前缀上 构建左子树。
  3. 递归地在最大值 右边 的 子数组后缀上 构建右子树。

返回 nums 构建的 最大二叉树 

 

 还是用递归三部曲做,代码如下:

public TreeNode constructMaximumBinaryTree(int[] nums) {// 1 <= nums.length <= 1000return bulid(nums,0,nums.length-1);}public TreeNode bulid(int[] nums,int start,int end){// 0 <= nums[i] <= 1000if(start>end){return null;}if(start==end){return new TreeNode(nums[start]);}int max=0;int index=0;for(int i=start;i<=end;i++){if(nums[i]>max){max=nums[i];index=i;}}TreeNode root=new TreeNode(max);root.left=bulid(nums,start,index-1);root.right=bulid(nums,index+1,end);return root;}

🎈LeetCode617.合并二叉树

链接:617.合并二叉树

给你两棵二叉树: root1 和 root2 。

想象一下,当你将其中一棵覆盖到另一棵之上时,两棵树上的一些节点将会重叠(而另一些不会)。你需要将这两棵树合并成一棵新二叉树。合并的规则是:如果两个节点重叠,那么将这两个节点的值相加作为合并后节点的新值;否则,不为 null 的节点将直接作为新二叉树的节点。

返回合并后的二叉树。

注意: 合并过程必须从两个树的根节点开始。

public TreeNode mergeTrees(TreeNode root1, TreeNode root2) {TreeNode root=new TreeNode();if(root1==null && root2==null){return null;}else if(root1==null && root2!=null){return root2;// return new TreeNode(root2.val);}else if(root1!=null && root2==null){return root1;// return new TreeNode(root1.val);}else{root.val=root1.val+root2.val;// return new TreeNode(root1.val+root2.val);root.left= mergeTrees(root1.left,root2.left);root.right=mergeTrees(root1.right,root2.right);}return root;}

🎈LeetCode700. 二叉搜索树中的搜索

链接:700.二叉搜索树中的搜索

 给定二叉搜索树(BST)的根节点 root 和一个整数值 val

你需要在 BST 中找到节点值等于 val 的节点。 返回以该节点为根的子树。 如果节点不存在,则返回 null 。

 

public TreeNode searchBST(TreeNode root, int val) {//root 是二叉搜索树 if(root==null){return null;}TreeNode node=new TreeNode(0);if(root.val>val){node=searchBST(root.left,val);}else if(root.val<val){node=searchBST(root.right,val);}else{return root;}return node;}

🎈LeetCode98. 验证二叉搜索树

链接:98.验证二叉搜索树

给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。

有效 二叉搜索树定义如下:

  • 节点的左子树只包含 小于 当前节点的数。
  • 节点的右子树只包含 大于 当前节点的数。
  • 所有左子树和右子树自身必须也是二叉搜索树。

 

二叉搜索树的中序遍历正好是一个递增的序列,可以利用中序遍历来判断是不是二叉搜索树,代码如下: 

public TreeNode searchBST(TreeNode root, int val) {//递归法//root 是二叉搜索树 if(root==null){return null;}TreeNode node=new TreeNode(0);if(root.val>val){node=searchBST(root.left,val);}else if(root.val<val){node=searchBST(root.right,val);}else{return root;}return node;}
public boolean isValidBST(TreeNode root) {// 迭代法if(root==null){return true;}Stack<TreeNode> st=new Stack<>();st.push(root);TreeNode pre=null;while(!st.isEmpty()){TreeNode node=st.peek();if(node!=null){st.pop();if(node.right!=null){st.push(node.right);}st.push(node);st.push(null);if(node.left!=null){st.push(node.left);}}else{st.pop();TreeNode temp=st.pop();if(pre!=null && pre.val>=temp.val){return false;}pre=temp;}}return true;}

http://www.ppmy.cn/news/584368.html

相关文章

Alibaba Cloud Linux 3.2104 LTS 64位 安装lnmp环境php8、mysql8

Alibaba Cloud Linux 3.2104 LTS 64位服务器安装lnmp环境全过程 以下都为阿里云购买的服务器为例 前言 购买了阿里云的服务器之后切记切记切记&#xff01; 第一步设置&#xff1a;更多> 网络和安全组> 安全组配置>入方向 第二步 设置root账户的密码&#xff08;如…

6-js基础-5

JavaScript 基础 - 5 知道对象数据类型的特征&#xff0c;能够利用数组对象渲染页面 对象综合案例数据类型存储 对象 对象&#xff08;Object&#xff09;&#xff1a;JavaScript里的一种数据类型&#xff08;引用类型&#xff09;&#xff0c;也是用于存储数据的 好处&#x…

苹果CMS模板MxPro主题V 2.0版本全解密影视源码+一键采集+搭建教程

源码介绍 MxPro主题V2.0全解密苹果CMS模板影视源码&#xff0c;模板写的很好&#xff0c;这套是修复版&#xff0c;简单修复了下分享二维码尺寸和访问网页跳转别的网站的问题。 如果之前使用过网上有暗门的模板&#xff0c;可以直接替换&#xff0c;也可以把之前的删了重新上…

「一本通 3.2 练习 6」汽车加油行驶

目录 第一步&#xff0c;二维转一维&#xff08;此步仅为方便&#xff0c;可以省略&#xff09; 第二步&#xff0c;建边&#xff08;啥都行&#xff0c;只要死不了&#xff09; 第三部&#xff0c;bfs&#xff08;你要dfs也行&#xff09; 第一步 第二步 第三步 可CA呢…

YYCMS5.0影视系统/源码全开源无授权/影视站全自动采集

介绍&#xff1a; 全新5.0版本&#xff0c;无授权搭建即可使用&#xff0c;跟老版授权版本功能没有太大的区别&#xff0c;内容是全自动采集的 网盘下载地址&#xff1a; http://kekewl.net/ZPwVkS4XTjz0 图片&#xff1a;

苹果cmsV10 MXone Pro自适应2.0影视模板源码下载

苹果CMS全解密MxPro2.0源码版本是一款简约清新&#xff0c;美观大气&#xff0c;单纯的影视模板&#xff0c;基于网上的修复版&#xff0c;又简单修复了下分享二维码尺寸和访问网页跳转别的网站的问题&#xff0c;手打了一份使用说明&#xff0c;全解密版本源码中有搭建说明&am…

仿视频字幕弹幕网站Miko二次元动漫视频网站源码

正文: 完整演示图放压缩包了&#xff0c;有兴趣的自己去看。 非常大气漂亮的Miko动漫视频网站整站源码&#xff0c;二次元动漫网源码。Dz后台管理方便&#xff0c;整站数据都设置好了&#xff0c;传上即可制作一个完整的动漫网。 1.源码上传到空间 2.把数据库文件.sql 上…

苹果cmsv10+2022新版海螺影视主题模板“带后台“M3.1全解密版本+萌芽采集插件

![在这里插入图片描述](https://img-blog.csdnimg.cn/4e1601e5f05e423ebe51e1ff4f6cf802.png#pic_center 关于CMS的安装就不过多介绍了&#xff0c;相信小伙伴也有点了解 模板支持首页大图轮播&#xff0c;图片里面的没有演示。 支持切换白天&#xff0c;夜晚模式。 ps: 1.部…