二叉搜索树与双向链表

2018-08-28  本文已影响0人  稀饭粥95

输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。

递归方法

public TreeNode Convert(TreeNode root) {
        if(root==null) return null;
        TreeNode left = Convert(root.left);
        TreeNode p = left;
        while(p!=null&&p.right!=null){
            p = p.right;
        }
        if(p!=null){
            p.right=root;
            root.left=p;
        }else{
            root.left=null;
        }
        TreeNode right = Convert(root.right);
        if(right!=null){
            root.right = right;
            right.left = root;
        }else{
            root.right=null;
        }
        return left!=null?left:root;
    }
上一篇 下一篇

猜你喜欢

热点阅读