underwindfall / Algorithme

练习总结算法的地方
https://qifanyang.com/resume
1 stars 0 forks source link

LCOF36 #372

Closed underwindfall closed 2 years ago

underwindfall commented 2 years ago
// time O(n)
    // space O(n)
    Node head = null, pre = null;

    public Node treeToDoublyList(Node root) {  
        if (root == null) return root;
        inOrder(root);
        head.left = pre;
        pre.right = head;
        return head;
    }

    void inOrder(Node node) {
        if(node == null) {
            return;
        }
        inOrder(node.left);
        if (pre == null) {
            head = node;
        } else {
            pre.right = node;
            node.left = pre;
        }
        pre = node;
        inOrder(node.right);
    }