java 二叉树(七)获取左子树中的最大节点
来源:互联网 发布:debian设置软件源 编辑:程序博客网 时间:2024/05/02 07:35
使用递归算法
此时要获取A的左子树中的最大值,首先分析最大值一定在左子树中的最右边,即B,这个最大值B也一定没有右孩子,那么我们只需要把A的右孩子的指向指向C即可,涉及到B的双亲节点和B的左孩子。
然后把得到的B节点返回即可。
(上次有错误,条件没覆盖全,这次修改下,测试完全ok!)
//查找一个节点下所有子孙中的最大值,并且删除这个节点,public Node delFind(Node node){//传入参数为被删除节点的左孩子Node node//Node temp=node;if(node.getRightChild()==null){return node;}if(node.getRightChild().getRightChild()==null){if(node.getRightChild().getLeftChild()!=null){/* * 如果被删除的节点有有左孩子,需要用被删除节点的父节点的右孩子指向被删除结点的左孩子, * 然后再把被删除节点的左孩子指向设为null,那么需要删除的节点就被删掉了 * 意思就是把B删除,把A指向C * A * / \ * D B * / * C */Node temp=node.getRightChild();node.setRightChild(node.getRightChild().getLeftChild());//node.getRightChild().setLeftChild(null);temp.setLeftChild(null);return temp;}Node temp=node.getRightChild();node.setRightChild(null);return temp;}return delFind(node.getRightChild());}
0 0
- java 二叉树(七)获取左子树中的最大节点
- java 二叉树(八)获取右子树中的最小节点
- 数据结构 找到二叉树中的最大搜索二叉子树
- 找到二叉树中的最大搜索二叉子树
- 找到二叉树中的最大搜索二叉子树
- 简单编程题目连载(十五)——找二叉树中的最大搜索二叉子树
- 交换二叉树的左子树和右子树
- 二叉树10:最大二叉搜索子树
- 二叉树问题---找到二叉树中的最大搜索二叉子树
- 二叉树和最大的子树
- 二叉树和最大的子树
- 二叉树的最大子树和
- 打印普通二叉树最大搜索子树
- 最大二叉搜索子树
- 最大二叉搜索子树
- 学习笔记—交换二叉树所有节点中的左右子树
- 二叉树中节点的最大距离(java)
- 二叉树(三)二叉树的高度、交换两个子树左右节点
- Android进程间通信(IPC)机制及Binder简要介绍
- gdb多进程调试
- NSArray和NSSet对比
- .net 消息队列MSMQ
- css实现图片垂直居中(兼容IE6/IE7)
- java 二叉树(七)获取左子树中的最大节点
- Problem4-总结报告
- 序列化与反序列化
- Install MongoDB and Node.js on a Raspberry Pi
- Eclipse集成反编译插件JadClipse
- 我们为什么选择Java
- CMD命令行接收用户输入信息
- 在windows7(64位)下安装python(3.4)的theano库
- Java反射原理极其实战