LeetCode 94. 二叉树的中序遍历 (递归与非递归解法)

题目

给定一个二叉树,返回它的中序 遍历。

示例:

输入: [1,null,2,3]
   1
    \
     2
    /
   3

输出: [1,3,2]
进阶: 递归算法很简单,你可以通过迭代算法完成吗?

代码

递归解法

var inorderTraversal = function(root) {
    if(!root) return []
    let res = []
    let trace = (root) => {
        if(!root) return
        trace(root.left)
        res.push(root.val)
        trace(root.right)
    }
    trace(root)
    return res
};

非递归解法

var inorderTraversal = function(root) {
    if(!root) return []
    let p = root,res = []
    let stack = []
    while(stack.length || p){
        while(p){
            stack.push(p)
            p = p.left
        }
        let node = stack.pop()
        res.push(node.val)
        p = node.right
    }
    return res
};
一百个Chocolate CSDN认证博客专家 CSDN博客专家 博客之星 前端开发攻城狮
座右铭:学如逆水行舟,不进则退!
公众号:小狮子前端 期待小狮子们的加入~
相关推荐
©️2020 CSDN 皮肤主题: 成长之路 设计师:Amelia_0503 返回首页
实付 9.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值