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

18th Day| 654.最大二叉树, 617.合并二叉树, 700.二叉搜索树中的搜索,98.验证二叉搜索树

LeetCode 654 最大二叉树

题目链接:654.最大二叉树

class Solution {public TreeNode constructMaximumBinaryTree(int[] nums) {//左闭右开return traversal(nums, 0, nums.length);}public TreeNode traversal(int[] nums, int begin, int end){if(begin >= end){return null;}if(end - begin == 1){return new TreeNode(nums[begin]);}int maxValue = nums[begin];int index = begin;for(int i = begin+1; i < end; i++){if(nums[i] > maxValue){maxValue = nums[i];index = i;}}TreeNode node = new TreeNode(maxValue);node.left = traversal(nums, begin, index);node.right = traversal(nums, index+1, end);return node;}
}

LeetCode 617 合并二叉树

题目链接:617.合并二叉树

/** 直接操作原有的二叉树不需要创建新的 */
class Solution {public TreeNode mergeTrees(TreeNode root1, TreeNode root2) {if(root1 == null) return root2;if(root2 == null) return root1;root1.val += root2.val;root1.left = mergeTrees(root1.left, root2.left);root1.right = mergeTrees(root1.right, root2.right);return root1; }
}

LeetCode 700 二叉搜索树中的搜索

题目链接:

/**递归 */
class Solution {public TreeNode searchBST(TreeNode root, int val) {if(root == null) return null;if(val < root.val) return searchBST(root.left, val);if(val > root.val) return searchBST(root.right, val);return root;}
}

LeetCode 98 验证二叉搜索树

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

/**中序遍历 二叉搜索树就是一个升序数组 判断这个数组是不是有序的*/
class Solution {List<Integer> list = new ArrayList<>();public boolean isValidBST(TreeNode root) {boolean res = true;traversal(root);for(int i = 1; i < list.size(); i++){if(list.get(i) <= list.get(i-1)){res = false;break;}}return res;}public void traversal(TreeNode root){if(root == null) return;traversal(root.left);list.add(root.val);traversal(root.right);}
}
/**在递归的过程中直接判断是不是有序的,pre记录啦上一个节点 当前节点和上一个节点比较双指针优化*/
class Solution {TreeNode pre;public boolean isValidBST(TreeNode root) {if(root == null) return true;boolean left = isValidBST(root.left);if(pre != null && root.val <= pre.val){return false;}pre = root;boolean right = isValidBST(root.right);return left && right;}
}

http://www.xdnf.cn/news/14983.html

相关文章:

  • 微算法科技的前沿探索:量子机器学习算法在视觉任务中的革新应用
  • 虚拟储能与分布式光伏协同优化:新型电力系统的灵活性解决方案
  • Mac自定义右键功能
  • ThinkBook 14s IWL(20RM)OEM系统镜像原厂Win10系统
  • @Schema是什么?
  • C++之string类的实现代码及其详解(下)
  • Flowable21条件事件------------持续更新中
  • 【Linux手册】从接口到管理:Linux文件系统的核心操作指南
  • 《C++初阶之内存管理》【内存分布 + operator new/delete + 定位new】
  • 访问Windows服务器备份SQL SERVER数据库
  • AI【应用 03】Windows环境部署 TTS CosyVoice2.0 详细流程记录(Matcha-TTS、spk2info.pt等文件分享)
  • 从品牌附庸到自我表达:定制开发开源AI智能名片S2B2C商城小程序赋能下的营销变革
  • iOS 抓包详细教程:从零搭建、操作到实战调试的全流程指南
  • Fiddler中文版全面评测:功能亮点、使用场景与中文网资源整合指南
  • 网安系列【15】之Docker未授权访问漏洞
  • 微信小程序控制空调之EMQX服务器安装与配置
  • 在 Apple 生态中,`aarch64` 和 `arm64` 本质上是相同的架构
  • 亚马逊首个“海折节”,缘何加码进口电商?
  • 使用 FreeRTOS 实现简单多任务调度(初识 RTOS)
  • HarmonyOS学习记录4
  • 基于SpringBoot+Vue的疫情问卷调查与返校信息管理系统】前后端分离
  • Paimon 原子提交实现
  • 19-C#静态方法与静态类
  • 桌面开发,在线%图书管理系统%开发,基于C#,winform,界面美化,mysql数据库
  • Foundry智能合约测试设计流程
  • Git系列--3.分支管理
  • 学习open62541 --- [79] 在docker中运行open62541工程
  • Java零基础笔记08(Java编程核心:面向对象编程高级 {继承、多态})
  • 编写产品需求文档:黄历日历小程序
  • Python-FAQ-单例模式