乐趣区

关于数据结构:数据结构truee

数组转成链表

        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);
退出移动版