数组转成链表

        class TreeNode {            constructor(val) {                this.val = val;                this.left = null;                this.right = null;            }        }        function arrayToTree(arr) {            function toNode(item) {//转换数组项至节点                if (item === null || item === undefined) { return null }                else { return new TreeNode(item) }            }            let queue = [];            const tree = toNode(arr.shift());            queue.push(tree);//入队列第一个元素            while (arr.length > 0) {                //当数组里还有项的时候就拿数组的项去填充队列                let current = queue.shift();                current.left = toNode(arr.shift());                current.right = toNode(arr.shift());                if (current.left) { queue.push(current.left) }                if (current.right) { queue.push(current.right) }            }            return tree;        }
        // var arr = [3, 9, 20, null, null, 15, 7]        // var arr = [5, 4, 8, 11, null, 13, 4, 7, 2, null, null, null, 1];        // var arr = [3, 1, 4, null, 2]        var arr = [5, 3, 6, 2, 4, null, null, 1]        var data = new arrayToTree(arr)        console.log('data', data);