【LeetCode热题100(36/100)】二叉树的中序遍历

题目地址: 链接
思路:

  1. 递归解法适合理解中序遍历的基本逻辑,代码量少,但受限于树的深度(暴栈)。
  2. 迭代解法(栈实现)更稳定,适用于所有场景,尤其是大规模树结构。
js 复制代码
/**
 * Definition for a binary tree node.
 * function TreeNode(val, left, right) {
 *     this.val = (val===undefined ? 0 : val)
 *     this.left = (left===undefined ? null : left)
 *     this.right = (right===undefined ? null : right)
 * }
 */
/**
 * @param {TreeNode} root
 * @return {number[]}
 */
var inorderTraversal = function(root) {
    let ans = [];
    let stk = [];
    while(root || stk.length) {
        while(root) {
            stk.push(root);
            root = root.left;
        }
        root = stk.pop();
        ans.push(root.val);
        root = root.right;
    }
    return ans;
};
相关推荐
小欣加油3 小时前
leetcode 62 不同路径
c++·算法·leetcode·职场和发展
夏鹏今天学习了吗3 小时前
【LeetCode热题100(38/100)】翻转二叉树
算法·leetcode·职场和发展
DTS小夏3 小时前
算法社Python基础入门面试题库(新手版·含答案)
python·算法·面试
Mr.Ja4 小时前
【LeetCode热题100】No.11——盛最多水的容器
算法·leetcode·贪心算法·盛水最多的容器
冷徹 .4 小时前
2024ICPC区域赛香港站
数据结构·c++·算法
浅川.255 小时前
xtuoj string
开发语言·c++·算法
韩非5 小时前
if 语句对程序性能的影响
算法·架构
用户916357440955 小时前
LeetCode热题100——15.三数之和
javascript·算法
ting_zh5 小时前
导数、偏导数与梯度:机器学习数学基础
算法·基础数学