从根节点往下分别查找左子树和右子树的最大节点,再比较左子树,右子树,根节点的大小得到结果,在得到左子树和右子树最大节点的过程相似,因此可以采用递归的

  1. //树节点结构
  2. public class TreeNode {
  3. TreeNode left;
  4. TreeNode right;
  5. int val;
  6. TreeNode(int val){
  7. this.val = val;
  8. }
  9. }
  10. public class Solution {
  11. /**
  12. * @param root 传入根节点
  13. * @return 返回最大结果
  14. */
  15. public static TreeNode maxNode(TreeNode root){
  16. //当再无子节点,返回当前节点
  17. if (root == null) {
  18. return root;
  19. }
  20. TreeNode left = maxNode(root.left);//递归得到左子树最大值
  21. TreeNode right = maxNode(root.right);//递归得到右子树的最大值
  22. return max(root,max(left,right));//返回左节点,根节点,右节点的最大值
  23. }
  24. public static TreeNode max(TreeNode a,TreeNode b) {
  25. if (a == null) {
  26. return b;
  27. }
  28. if (b == null) {
  29. return a;
  30. }
  31. if (a.val > b.val) {
  32. return a;
  33. }
  34. return b;
  35. }
  36. public static void main(String[] args) {
  37. TreeNode t1 = new TreeNode(1);
  38. TreeNode t2 = new TreeNode(-5);
  39. TreeNode t3 = new TreeNode(3);
  40. TreeNode t4 = new TreeNode(1);
  41. TreeNode t5 = new TreeNode(2);
  42. TreeNode t6 = new TreeNode(-4);
  43. TreeNode t7 = new TreeNode(-5);
  44. t1.left = t2;t1.right = t5;
  45. t2.left = t3;t2.right = t4;
  46. t5.left = t6;t5.right = t7;
  47. System.out.println(Solution.maxNode(t1).val);
  48. }
  49. }

转载于:https://www.cnblogs.com/Darkqueen/p/9165794.html

二叉树删除节点,(查找二叉树最大值节点)相关推荐

  1. mysql查找无根节点sql_SQL 双亲节点查找所有子节点的实现方法

    怎么保存树状结构的数据呢?在 SQL 中常用的是双亲节点法.创建表如下 CREATE TABLE category ( id LONG, parentId LONG, name String(20) ...

  2. SqlServer中递归查询父节点及其所属子节点

    SqlServer中递归查询父节点及其所属子节点 需求场景 SQL脚本实现-根据子节点查询所有的父节点 查询结果 SQL脚本实现-根据父节点查询所有的子节点 查询结果 需求场景 递归查询父节点及其所属 ...

  3. 二叉树 BinaryTree (先序、中序、后序遍历 节点查找、插入、删除 完整类) Java数据结构与算法

    二叉树 BinaryTree (先序.中序.后序遍历 节点查找.插入.删除 完整类) Java数据结构与算法 源代码: view plain /** * * @author sunnyykn */ i ...

  4. 数据结构 day07 基础知识学习 (二叉树 的 前中后遍历 ,插入节点,删除叶子节点, 二叉树的节点个数 )

    一.今天有点迷. 二.希望大家看的懂代码 ,我已经很努力写注释了. 三.这次的知识很基础 ,(老师关于 二叉树节点删除的哪里 讲的有点差 ,主要是讲之前没有打好框架   (关于父节点的定义   )  ...

  5. n个节点的二叉树n+1_使用C ++程序删除链接列表的M个节点后的N个节点

    n个节点的二叉树n+1 Problem statement: 问题陈述: Given a Linked List, we have to delete N numbers of nodes after ...

  6. java递归方法建立搜索二叉树,具备查找关键字,插入新节点功能

    二叉排序树的定义: 二叉排序树满足以下三个性质(BST性质): <1>若它的左子树非空,则左子树上所有节点的值均小于根节点的值 <2>若它的右子树非空,则右子树上所有节点的值均 ...

  7. 华为OD机试用Python实现 -【查找树中的元素 or 查找二叉树节点】(2023-Q1 新题)

    华为OD机试题 华为OD机试300题大纲 查找树中的元素 or 查找二叉树节点 题目描述 输入描述 输出描述 说明 示例一 输入 输出 示例二 输入 输出 Python 代码实现 代码编写思路 华为O ...

  8. 最完整二叉树删除节点

    二叉树删除节点 在自己研究二叉树删除节点时,查网上资料时发现,网上大部分写的都是错的,主要错在当删除的节点既存在左子树,又存在右子树时,在中序遍历后获取后继节点后,大部分文章未考虑后继节点存在右子树的 ...

  9. [c++]查找二叉树根节点到任意结点的路径

    今天在做leetcode236时受到启发,怎么求二叉树根节点到二叉树任意结点(该节点在二叉树中存在)的路径?当然,前提是二叉树各节点的值不相等. 示例 输入:root = [3,5,1,6,2,0,8 ...

最新文章

  1. html当作附件发送,MIME以HTML文件作为附件发送电子邮件?
  2. 转:Bit-Map思想与2-BitMap思想
  3. ROS学习之包的概念
  4. MVC控制器传递多个实体类集合到视图的方案总结
  5. JavaOne 2015 –提交的技巧和建议
  6. 修改tomcat服务器图标,修改tomcat小猫图标,设置项目的favicon图标
  7. 文末送书 | 数据分析简单入门
  8. Android 分析监听器上的参数position和id(二)
  9. NLP—3.文本特征工程及工具使用举例
  10. 23. Navigator javaEnabled() 方法
  11. hadoop之MapReducer作业的提交执行过程
  12. 导出chrome扩展插件,crx文件
  13. 自然数e的故事(转)
  14. Ceph 命令 pool image 纠删
  15. Cmake传入项目版本号
  16. java定义一个方法计算三角形,长方形,圆形面积和周长
  17. Leetcode刷题java之1079. 活字印刷
  18. java-net-php-python-ssm个人理财管理系统登陆计算机毕业设计程序
  19. 用计算机玩穿越火线,为什么每次玩穿越火线电脑就特别卡?
  20. Maven下载与配置详细教程

热门文章

  1. django异常日志_【python小随笔】Django+错误日志(配置Django报错文件指定位置)...
  2. python读取hdf5文件_Python处理HDF5文件
  3. java教学楼的属性_java设计一个父类建筑物building,由它派生出教学楼类classroom,然后采用一些数据进行测试....
  4. python里orient_OrientDB Python连接操作
  5. linux 无密码登录另一台服务器,ECS Linux服务器ssh免密码登录另外一台服务器的具体设置...
  6. 【C++grammar】名字隐藏与重定义
  7. (1-e^(-j5w))/(1-e^(-jw))=e^(-j2w)*sin(5w/2)/sin(w/2)的证明过程
  8. rss聚合模式案例_RSS的完整形式是什么?
  9. Scala中的do ... while循环
  10. 成对的歌曲,其总持续时间可被60整除