题解 | #序列化二叉树#

序列化二叉树

http://www.nowcoder.com/practice/cf7e25aa97c04cc1a68c8f040e71fb84

/*class TreeNode {
 *     val: number
 *     left: TreeNode | null
 *     right: TreeNode | null
 *     constructor(val?: number, left?: TreeNode | null, right?: TreeNode | null) {
 *         this.val = (val===undefined ? 0 : val)
 *         this.left = (left===undefined ? null : left)
 *         this.right = (right===undefined ? null : right)
 *     }
 * }
 */

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 * 
 * @param root TreeNode类 
 * @return TreeNode类
 */
export function Serialize(root: TreeNode): string {
    if (root === null) return '';
    const res = []
    const queue = [root]
    while(queue.length) {
        const node = queue.shift();
        if (node) {
            res.push(node.val);
            queue.push(node.left)
            queue.push(node.right)
        } else {
            res.push('#')
        }
    }
    
    return res.join(',')
}
export function Deserialize(str: string): TreeNode {
    if (!str) return null
    const arr: string[] = str.split(',')
    const root = new TreeNode(Number(arr.shift()))
    const nodeList = [root]
    while(arr.length) {
        const node = nodeList.shift()
        const left = arr.shift();
        const right = arr.shift();
        if (left !== '#') {
            node.left = new TreeNode(Number(left))
            nodeList.push(node.left)
        }
        if (right !== '#') {
            node.right = new TreeNode(Number(right))
            nodeList.push(node.right)
        }
    }
    return root;
}









全部评论

相关推荐

焦虑中,不知道怎么办了。。。
西北上单:应该放俩项目合理一些 我是一个业务开发项目 一个AI项目和你这个写的亮点差不多
你的简历改到第几版了
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
正在热议
更多
# 一张图晒出你司的标语 #
4381次浏览 77人参与
# AI面会问哪些问题? #
28254次浏览 566人参与
# 开放七大实习专项,百度暑期实习值得冲吗 #
15400次浏览 223人参与
# 你的实习产出是真实的还是包装的? #
20431次浏览 343人参与
# 找AI工作可以去哪些公司? #
9367次浏览 248人参与
# 春招至今,你的战绩如何? #
66404次浏览 586人参与
# 米连集团26产品管培生项目 #
13407次浏览 285人参与
# 从事AI岗需要掌握哪些技术栈? #
9204次浏览 322人参与
# 中国电信笔试 #
32078次浏览 295人参与
# 你做过最难的笔试是哪家公司 #
34361次浏览 246人参与
# 投递几十家公司,到现在0offer,大家都一样吗 #
340972次浏览 2175人参与
# 哪些公司真双非友好? #
69702次浏览 289人参与
# 阿里笔试 #
179029次浏览 1318人参与
# 机械人避雷的岗位/公司 #
62709次浏览 393人参与
# 小马智行求职进展汇总 #
25140次浏览 80人参与
# 第一份工作一定要去大厂吗 #
14907次浏览 122人参与
# 金三银四,你的春招进行到哪个阶段了? #
22250次浏览 284人参与
# 担心入职之后被发现很菜怎么办 #
291382次浏览 1210人参与
# 为了减少AI幻觉,你注入过哪些设定? #
26283次浏览 310人参与
# 应届生第一份工资要多少合适 #
20694次浏览 86人参与
# HR最不可信的一句话是__ #
6352次浏览 114人参与
# 沪漂/北漂你觉得哪个更苦? #
10045次浏览 194人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务