美文网首页
二叉树的统一迭代法

二叉树的统一迭代法

作者: 荔桑 | 来源:发表于2021-05-06 19:23 被阅读0次

中序遍历:

var inorderTraversal = function(root) {
    const res = [];
    const stack = [];
    let node ;
    if(root!==null) stack.push(root);
    while(stack.length>0) {
        node = stack.pop();
        if(node != null) {
            if(node.right) stack.push(node.right);
            stack.push(node);
            stack.push(null);
            if(node.left) stack.push(node.left);
        } else {
            node = stack.pop();
            res.push(node.val);
        }
        
    }
    return res;
};

前序遍历:

var inorderTraversal = function(root) {
    const res = [];
    const stack = [];
    let node ;
    if(root!==null) stack.push(root);
    while(stack.length>0) {
        node = stack.pop();
        if(node != null) {
            if(node.right) stack.push(node.right);
            if(node.left) stack.push(node.left);    // 改变两行代码的位置
            stack.push(node);
            stack.push(null);
        } else {
            node = stack.pop();
            res.push(node.val);
        }
        
    }
    return res;
};

后序遍历:

var inorderTraversal = function(root) {
    const res = [];
    const stack = [];
    let node ;
    if(root!==null) stack.push(root);
    while(stack.length>0) {
        node = stack.pop();
        if(node != null) {
            stack.push(node);
            stack.push(null);       // 与之前比也是改变顺序
            if(node.right) stack.push(node.right);
            if(node.left) stack.push(node.left);
        } else {
            node = stack.pop();
            res.push(node.val);
        }
        
    }
    return res;
};

相关文章

网友评论

      本文标题:二叉树的统一迭代法

      本文链接:https://www.haomeiwen.com/subject/hcnddltx.html