面试题36. 二叉搜索树与双向链表(dfs)

121 阅读1分钟

class Solution {
    Node pre, head;
    public Node treeToDoublyList(Node root) {
        if(root==null) return null;
        dfs(root);
        pre.right = head;
        head.left = pre;
        return head;
    }

    private void dfs(Node cur) {
        if(cur==null)return;
        dfs(cur.left);
        if(pre!=null) pre.right = cur;
        else head = cur;
        cur.left = pre;
        pre = cur;
        dfs(cur.right);
    }
}