剑指offer题解36:二叉搜索树与双向链表

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

题解:

/**
public class TreeNode {
    int val = 0;
    TreeNode left = null;
    TreeNode right = null;

    public TreeNode(int val) {
        this.val = val;

    }

}
*/
public class Solution {
    TreeNode pre=null,head=null;
    public TreeNode Convert(TreeNode pRootOfTree) {
        inorder(pRootOfTree);
        return head;
    }
    void inorder(TreeNode root){
        if(root==null)
            return;
        inorder(root.left);
        root.left=pre;
        if(pre!=null)
            pre.right=root;
        pre=root;
        if(head==null)
            head=root;
        inorder(root.right);
    }
}
上一篇:105. 从前序与中序遍历序列构造二叉树


下一篇:98-Validate Binary Search Tree