剑指 Offer 36. 二叉搜索树与双向链表

剑指 Offer 36. 二叉搜索树与双向链表_第1张图片
剑指 Offer 36. 二叉搜索树与双向链表_第2张图片
思路:二叉树的中序遍历是递增的,因此会想到中序遍历。

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

    void inorder(Node root){
        if (root == null)   return;
        // 左
        inorder(root.left);
        if (pre == null){
            head = root;
        }else {
            pre.right = root;
            root.left = pre;
        }
        pre = root;
        // 右
        inorder(root.right);
    }
}

你可能感兴趣的:(剑指offer,链表,树,二叉搜索树与双向链表,二叉搜索树,链表)