二叉树删除节点,(查找二叉树最大值节点)
从根节点往下分别查找左子树和右子树的最大节点,再比较左子树,右子树,根节点的大小得到结果,在得到左子树和右子树最大节点的过程相似,因此可以采用递归的
- //树节点结构
- public class TreeNode {
- TreeNode left;
- TreeNode right;
- int val;
- TreeNode(int val){
- this.val = val;
- }
- }
- public class Solution {
- /**
- * @param root 传入根节点
- * @return 返回最大结果
- */
- public static TreeNode maxNode(TreeNode root){
- //当再无子节点,返回当前节点
- if (root == null) {
- return root;
- }
- TreeNode left = maxNode(root.left);//递归得到左子树最大值
- TreeNode right = maxNode(root.right);//递归得到右子树的最大值
- return max(root,max(left,right));//返回左节点,根节点,右节点的最大值
- }
- public static TreeNode max(TreeNode a,TreeNode b) {
- if (a == null) {
- return b;
- }
- if (b == null) {
- return a;
- }
- if (a.val > b.val) {
- return a;
- }
- return b;
- }
- public static void main(String[] args) {
- TreeNode t1 = new TreeNode(1);
- TreeNode t2 = new TreeNode(-5);
- TreeNode t3 = new TreeNode(3);
- TreeNode t4 = new TreeNode(1);
- TreeNode t5 = new TreeNode(2);
- TreeNode t6 = new TreeNode(-4);
- TreeNode t7 = new TreeNode(-5);
- t1.left = t2;t1.right = t5;
- t2.left = t3;t2.right = t4;
- t5.left = t6;t5.right = t7;
- System.out.println(Solution.maxNode(t1).val);
- }
- }
转载于:https://www.cnblogs.com/Darkqueen/p/9165794.html
二叉树删除节点,(查找二叉树最大值节点)相关推荐
- mysql查找无根节点sql_SQL 双亲节点查找所有子节点的实现方法
怎么保存树状结构的数据呢?在 SQL 中常用的是双亲节点法.创建表如下 CREATE TABLE category ( id LONG, parentId LONG, name String(20) ...
- SqlServer中递归查询父节点及其所属子节点
SqlServer中递归查询父节点及其所属子节点 需求场景 SQL脚本实现-根据子节点查询所有的父节点 查询结果 SQL脚本实现-根据父节点查询所有的子节点 查询结果 需求场景 递归查询父节点及其所属 ...
- 二叉树 BinaryTree (先序、中序、后序遍历 节点查找、插入、删除 完整类) Java数据结构与算法
二叉树 BinaryTree (先序.中序.后序遍历 节点查找.插入.删除 完整类) Java数据结构与算法 源代码: view plain /** * * @author sunnyykn */ i ...
- 数据结构 day07 基础知识学习 (二叉树 的 前中后遍历 ,插入节点,删除叶子节点, 二叉树的节点个数 )
一.今天有点迷. 二.希望大家看的懂代码 ,我已经很努力写注释了. 三.这次的知识很基础 ,(老师关于 二叉树节点删除的哪里 讲的有点差 ,主要是讲之前没有打好框架 (关于父节点的定义 ) ...
- n个节点的二叉树n+1_使用C ++程序删除链接列表的M个节点后的N个节点
n个节点的二叉树n+1 Problem statement: 问题陈述: Given a Linked List, we have to delete N numbers of nodes after ...
- java递归方法建立搜索二叉树,具备查找关键字,插入新节点功能
二叉排序树的定义: 二叉排序树满足以下三个性质(BST性质): <1>若它的左子树非空,则左子树上所有节点的值均小于根节点的值 <2>若它的右子树非空,则右子树上所有节点的值均 ...
- 华为OD机试用Python实现 -【查找树中的元素 or 查找二叉树节点】(2023-Q1 新题)
华为OD机试题 华为OD机试300题大纲 查找树中的元素 or 查找二叉树节点 题目描述 输入描述 输出描述 说明 示例一 输入 输出 示例二 输入 输出 Python 代码实现 代码编写思路 华为O ...
- 最完整二叉树删除节点
二叉树删除节点 在自己研究二叉树删除节点时,查网上资料时发现,网上大部分写的都是错的,主要错在当删除的节点既存在左子树,又存在右子树时,在中序遍历后获取后继节点后,大部分文章未考虑后继节点存在右子树的 ...
- [c++]查找二叉树根节点到任意结点的路径
今天在做leetcode236时受到启发,怎么求二叉树根节点到二叉树任意结点(该节点在二叉树中存在)的路径?当然,前提是二叉树各节点的值不相等. 示例 输入:root = [3,5,1,6,2,0,8 ...
最新文章
- html当作附件发送,MIME以HTML文件作为附件发送电子邮件?
- 转:Bit-Map思想与2-BitMap思想
- ROS学习之包的概念
- MVC控制器传递多个实体类集合到视图的方案总结
- JavaOne 2015 –提交的技巧和建议
- 修改tomcat服务器图标,修改tomcat小猫图标,设置项目的favicon图标
- 文末送书 | 数据分析简单入门
- Android 分析监听器上的参数position和id(二)
- NLP—3.文本特征工程及工具使用举例
- 23. Navigator javaEnabled() 方法
- hadoop之MapReducer作业的提交执行过程
- 导出chrome扩展插件,crx文件
- 自然数e的故事(转)
- Ceph 命令 pool image 纠删
- Cmake传入项目版本号
- java定义一个方法计算三角形,长方形,圆形面积和周长
- Leetcode刷题java之1079. 活字印刷
- java-net-php-python-ssm个人理财管理系统登陆计算机毕业设计程序
- 用计算机玩穿越火线,为什么每次玩穿越火线电脑就特别卡?
- Maven下载与配置详细教程
热门文章
- django异常日志_【python小随笔】Django+错误日志(配置Django报错文件指定位置)...
- python读取hdf5文件_Python处理HDF5文件
- java教学楼的属性_java设计一个父类建筑物building,由它派生出教学楼类classroom,然后采用一些数据进行测试....
- python里orient_OrientDB Python连接操作
- linux 无密码登录另一台服务器,ECS Linux服务器ssh免密码登录另外一台服务器的具体设置...
- 【C++grammar】名字隐藏与重定义
- (1-e^(-j5w))/(1-e^(-jw))=e^(-j2w)*sin(5w/2)/sin(w/2)的证明过程
- rss聚合模式案例_RSS的完整形式是什么?
- Scala中的do ... while循环
- 成对的歌曲,其总持续时间可被60整除