讲二次搜索树转化为排序的双向链表
Posted gylhaut
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了讲二次搜索树转化为排序的双向链表相关的知识,希望对你有一定的参考价值。
package com.gylhaut.bean; public class TreeNode<T> { public T data; public TreeNode left; public TreeNode right; public TreeNode(T data) { this.left = null; this.right = null; this.data = data; } }
算法实现:
package com.gylhaut.util; import com.gylhaut.bean.TreeNode; public class BinaryTreeHelper { /** * 指向头节点 * @param root * @return */ public static TreeNode convert(TreeNode root){ root=convert2Link(root); while (root.left != null){ root = root.left; } return root; } /** * 搜索二叉树转成双向链表 * @param root * @return */ public static TreeNode convert2Link(TreeNode root){ if(root == null|| (root.left == null && root.right == null)){ return root; } TreeNode tmp = null; if(root.left != null){ tmp= convert2Link(root.left); while (tmp.right != null){ tmp = tmp.right; } tmp.right = root; root.left = tmp; } if (root.right !=null){ tmp = convert2Link(root.right); while (tmp.left != null){ tmp = tmp.left; } tmp.left = root; root.right = tmp; } return root; } }
以上是关于讲二次搜索树转化为排序的双向链表的主要内容,如果未能解决你的问题,请参考以下文章