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

二叉树的中序遍历

http://www.nowcoder.com/practice/0bf071c135e64ee2a027783b80bf781d

中序遍历的递归和非递归解法

递归解法:左中右

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

非递归解法:栈和指针的思想

function inorderTraversal( root ) {
    // write code here
    let res = [];
    if(!root) return res;
    let p = root;
    let q = [];
    
    while(q.length || p ){
        while(p){
            q.push(p);
            p = p.left;
        }
        //console.log(q)
        let qHead = q.pop();
        res.push(qHead.val);
        p = qHead.right;
    }
    return res;
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
昨天 14:00
点赞 评论 收藏
分享
昨天 11:33
江南大学 Java
已经在暑假实习了 ,没有明确说有hc,纠结实习到八月份会不会有点影响秋招毕竟感觉今年好多提前批
程序员小白条:92的话准备提前批,其他没必要,没面试机会的,而且你要准备充分,尤其八股和算法题
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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