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

一.题目要求

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

二.题目难度

简单

三.输入样例

示例 1:

输入:root = 1,null,2,3

输出:1,3,2

示例 2:

输入:root = \[\]

输出:\[\]

示例 3:

输入:root = 1

输出:1

提示:

树中节点数目在范围 0, 100

-100 <= Node.val <= 100

进阶: 递归算法很简单,你可以通过迭代算法完成吗?

四.解题思路

递归或迭代

五.代码实现

递归

cpp 复制代码
/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode() : val(0), left(nullptr), right(nullptr) {}
 *     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
 *     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
 * };
 */
class Solution {
public:
    vector<int> inorderTraversal(TreeNode* root) {
     if(root == nullptr) return {};
     //遍历左子树
     inorderTraversal(root->left);
     //对该节点操作
     result.push_back(root->val);
     //遍历右子树
     inorderTraversal(root->right);

     return result;
    }

    vector<int> result;
};

迭代

cpp 复制代码
/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode() : val(0), left(nullptr), right(nullptr) {}
 *     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
 *     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
 * };
 */
class Solution {
public:
    vector<int> inorderTraversal(TreeNode* root) {
     vector<int> result;
     stack<TreeNode*> stk;
     while(root || !stk.empty())
     {
        while(root)
        {
            stk.push(root);
            root = root->left;
        }
        root = stk.top();
        stk.pop();
        result.push_back(root->val);
        root = root->right;
     }

     return result;
    }

    
};

六.题目总结

--

相关推荐
To_OC2 小时前
LC 200 岛屿数量:经典 DFS 入门题,我第一次写居然连方向都搞错了
javascript·算法·leetcode
To_OC19 小时前
LC 128 最长连续序列:别上来就排序,O (n) 解法才是这题的灵魂
javascript·算法·leetcode
05Kevin1 天前
lk每日冒险题--数据结构6.27
算法
To_OC2 天前
从一次栈溢出报错说起,我把递归彻底扒明白了
javascript·算法·程序员
千纸鹤安安2 天前
千问Qwen-AgentWorld来了:一个语言模型搞定七大Agent场景,GPT-5.4都输了
算法
七牛开发者2 天前
MCP 到底是什么?为什么 Agent 都想接上它
算法·aigc·agent
kisshyshy2 天前
从递归到迭代,一文吃透二叉树的核心知识与 JavaScript 实现
javascript·算法·代码规范