LeetCode 12.15(剑指offer)

205 阅读1分钟

35.复杂链表的复制

//哈希加遍历
var copyRandomList = function(head) {
    if(head==null) return head;
    let tmp = new Node(head.val);
    let map = new Map();
    let storeH = head;
    let storeR = tmp;
    let res = storeR;
    while(head.next!==null){
        map.set(head,tmp);
        tmp.next = new Node(head.next.val);
        tmp = tmp.next;
        head = head.next;
    }
    map.set(head, tmp)
    while(storeH.next!==null){
        storeR.random = map.get(storeH.random);
        storeR = storeR.next;
        storeH = storeH.next;
    }
    storeR.random = map.get(storeH.random);
    return res;
};

32.I从上到下打印二叉树

//while判断等不等于null,一直没过....应该是0
var levelOrder = function(root) {
    if(root==null) return [];
    let tree = [];
    tree.push(root);
    let res = [];
    while(tree.length!==0){
        let tmp = tree.shift();
        res.push(tmp.val);
        if(tmp.left!==null){
            tree.push(tmp.left);
        }
        if(tmp.right!==null){
            tree.push(tmp.right);
        }
    }
    return res;
};