二叉搜索树与双向链表

Posted dyq19

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二叉搜索树与双向链表相关的知识,希望对你有一定的参考价值。

public class Solution {
 public static TreeNode Convert(TreeNode pRootOfTree) {
        TreeNode p = pRootOfTree;
        TreeNode q = null;
        if(p!=null){
            LinkedList<TreeNode> list = new LinkedList<>();
            list.push(p);//根结点入栈
            while(p.left!=null){
                p = p.left;
                list.push(p);
            }
            TreeNode s = p;
            while(!list.isEmpty()){
                p = (TreeNode)list.pop();//最左结点
               
                if(q == null){
                    q = p;
                }
                else{
                    q.right = p;
                    p.left = q;
                    q = p;
                }
                if(p.right != null){
                    list.push(p.right);
                    p = p.right;
                    while(p.left!=null){
                        p = p.left;
                        list.push(p);
                    }
                }
            
            }
            return s;
        }
        return null;
    }
}

https://en.wikipedia.org/wiki/Tree_traversal#Iterative_Traversal

以上是关于二叉搜索树与双向链表的主要内容,如果未能解决你的问题,请参考以下文章

二叉搜索树与双向链表

二叉搜索树与双向链表

二叉搜索树与双向链表

剑指offer---二叉搜索树与双向链表

LeetCode-树二叉搜索树与双向链表

26.二叉搜索树与双向链表