function TreeNode(val) {
this.val = val;
this.left = this.right = null;
}
//树的序列化
var serialize = function (root) {
if (!root) return []
const res = []
const queue = []
queue.push(root)
while (queue.length) {
const temp = queue.shift()
if (!temp) {
res.push(temp)
continue
}
res.push(temp.val)
queue.push(temp.left)
queue.push(temp.right)
}
console.log(res);
return res
};
//树的反序列化
var deserialize = function (data) {
if (!data || !data.length) return null
const root = new TreeNode(data[0])
const queue = [root]
let i = 1
while (i < data.length) {
let cur = queue.pop()
if (data[i] !== null) {
cur.left = new TreeNode(data[i])
queue.unshift(cur.left)
}
i++
if (i < data.length) {
if (data[i] !== null) {
cur.right = new TreeNode(data[i])
queue.unshift(cur.right)
}
}
i++
}
console.log(root)
return root
};
08-16
563
06-09
794