๐ŸŒ•๐ŸŒ— ๅ‰‘ๆŒ‡ Offer 36. ไบŒๅ‰ๆœ็ดขๆ ‘ไธŽๅŒๅ‘้“พ่กจ

ๅžไฝ›็ซฅๅญ2022ๅนด10ๆœˆ10ๆ—ฅ
  • algorithm
  • Tree
ๅฐไบŽ 1 ๅˆ†้’Ÿ

๐ŸŒ•๐ŸŒ— ๅ‰‘ๆŒ‡ Offer 36. ไบŒๅ‰ๆœ็ดขๆ ‘ไธŽๅŒๅ‘้“พ่กจ

้šพๅบฆ: ๐ŸŒ•๐ŸŒ—

้—ฎ้ข˜ๆ่ฟฐ

img_49.png


่งฃๆณ•

/*
// Definition for a Node.
class Node {
    public int val;
    public Node left;
    public Node right;

    public Node() {}

    public Node(int _val) {
        val = _val;
    }

    public Node(int _val,Node _left,Node _right) {
        val = _val;
        left = _left;
        right = _right;
    }
};
*/
class Solution {
    Node head;
    Node pre;
    public Node treeToDoublyList(Node root) {
        // ๆ€่ทฏ๏ผš
        // ไฟๅญ˜ไธŠไธ€่Š‚็‚น
        if(root == null) {
            return root;
        }
        mySol(root);
        pre.right = head;
        head.left = pre;
        return head;
    }

    private void mySol(Node cur) {
        // ้€’ๅฝ’็ปˆๆญขๆกไปถ
        if(cur == null) {
            return;
        }
        mySol(cur.left);
        // ๅ•ๅฑ‚้€’ๅฝ’้€ป่พ‘
        if(pre == null) {
            head = cur;
            pre = cur;
        } else {
            pre.right = cur;
            cur.left = pre;
            pre = cur;
        }
        mySol(cur.right);
    }
}

่พ“ๅ‡บ

img_48.png

ไธŠๆฌก็ผ–่พ‘ไบŽ: 2022/10/10 ไธ‹ๅˆ8:43:48
่ดก็Œฎ่€…: liuxianzhishou