题解 | #二叉搜索树与双向链表#

二叉搜索树与双向链表

https://www.nowcoder.com/practice/947f6eb80d944a84850b0538bf0ec3a5

/* function TreeNode(x) {
    this.val = x;
    this.left = null;
    this.right = null;
} */
function Convert(pRootOfTree) {
    // write code here
    if(!pRootOfTree){
        return null
    }
    const nodeList = [];
    const traversal = (node) => {
        nodeList.push(node);
        if (node.left) {
            traversal(node.left);
        }
        if (node.right) {
            traversal(node.right);
        }
    };
    traversal(pRootOfTree);
    nodeList.sort((a, b) => a.val - b.val);
    for (let i = 0; i < nodeList.length - 1; i++) {
        nodeList[i].right = nodeList[i + 1];
        nodeList[i + 1].left = nodeList[i];
    }
    return nodeList[0];
}
module.exports = {
    Convert: Convert,
};

解题思路:用一个数组存放所有节点,然后再用每个节点的val进行排序,最后做左右指针的转化

#二叉搜索树与双向链表#
全部评论

相关推荐

04-18 15:58
已编辑
门头沟学院 设计
kaoyu:这一看就不是计算机的,怎么还有个排斥洗碗?
点赞 评论 收藏
分享
05-07 13:29
已编辑
门头沟学院 Java
北斗导航Compass低仿版:能不能先搞清楚优先级啊,怎么可能是项目问题,项目很重要吗?又没学历 又没实习大厂凭啥约面?那玩具项目 没应用在真实生产环境下的 就算做上天又有什么用?早点找个小公司实习 拿小公司实习去投大厂实习,这才是你现在该做的
投递美团等公司10个岗位 简历被挂麻了,求建议
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务