题解 | #二叉树的前序遍历#

二叉树的前序遍历

http://www.nowcoder.com/practice/5e2135f4d2b14eb8a5b06fab4c938635

二叉树的递归和非递归解法

递归解法

一定要注意res的全局性,作为参数要被传入;要注意递归的出口;

function preorderTraversal( root ) {
    // write code here
    const res = [];
    preorder(root,res);
    return res;
    
}
function preorder(root,res){
    if(!root){return;}
    res.push(root.val);
    preorder(root.left,res);
    preorder(root.right,res);
}
module.exports = {
    preorderTraversal : preorderTraversal
};

非递归解法

一定要注意当root为空的时候的返回

function preorderTraversal( root ) {
    let res = [];
    if(!root) return res;
    let stk = [root];
    while(stk.length){
        let top = stk.pop();
        res.push(top.val);
       if(top.right) stk.push(top.right);
       if(top.left) stk.push(top.left);
    }
    return res;
    
}
全部评论

相关推荐

万一背调了怎么办,这不就是毁了一个大学生嘛 这帮人为了挣钱真是没有底线了
程序员小白条:最近牛客看到很多,还有牛友跟我私信,团伙组织了,属于是
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-10 12:10
点赞 评论 收藏
分享
牛客83700679...:简历抄别人的,然后再投,有反馈就是简历不行,没反馈就是学历不行,多投多改只要技术不差机会总会有的
点赞 评论 收藏
分享
06-26 17:24
已编辑
宁波大学 golang
迷失西雅图:别给,纯kpi,别问我为什么知道
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务