求二叉树的序列化下一个节点
2022/4/15 6:16:27
本文主要是介绍求二叉树的序列化下一个节点,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
题目:
求二叉树的序列化下一个节点(即二叉树中序遍历的下一个节点)
* 如果可以快速找出一个节点的父节点,则可以采用比中序遍历法更简便的方法进行求解
* 思路:
* 1.先看这个节点有没有右子树,如果有右子树,则返回右子树的最左节点
* 2.如果没有右子树,就向上找它的父节点,直到找到一个父节点它是作为它父亲的左儿子即可返回该父节点
代码及解析:
1 public static Node getSuccessorNode(Node node) { 2 if (node == null) { 3 return null; 4 } 5 if (node.right != null) {//如果这个节点有右子树 6 return getMostLeft(node.right); 7 } 8 else { 9 Node parent = node.parent; 10 while (parent != null && parent.left != null) {//当这个父节点是它父亲的右儿子时,就一直往上找 11 //直到找到父亲的左儿子或者为空时结束 12 node = parent; 13 parent = node.parent; 14 } 15 return parent; 16 } 17 } 18 19 public static Node getMostLeft(Node root) { 20 while (root.left != null) { 21 root = root.left; 22 } 23 return root; 24 }
这篇关于求二叉树的序列化下一个节点的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-01基于Python+Vue开发的医院门诊预约挂号系统
- 2024-10-01基于Python+Vue开发的旅游景区管理系统
- 2024-10-01RestfulAPI入门指南:打造简单易懂的API接口
- 2024-10-01初学者指南:了解和使用Server Action
- 2024-10-01Server Component入门指南:搭建与配置详解
- 2024-10-01React 中使用 useRequest 实现数据请求
- 2024-10-01使用 golang 将ETH账户的资产平均分散到其他账户
- 2024-10-01JWT用户校验课程:从入门到实践
- 2024-10-01Server Component课程入门指南
- 2024-09-30Dnd-Kit学习:新手快速入门指南