LeetCode —— 94. 二叉树的中序遍历


😶‍🌫️😶‍🌫️😶‍🌫️😶‍🌫️Take your time ! 😶‍🌫️😶‍🌫️😶‍🌫️😶‍🌫️

💥个人主页:🔥🔥🔥大魔王🔥🔥🔥

💥所属专栏:🔥魔王的修炼之路--力扣🔥
如果你觉得这篇文章对你有帮助,请在文章结尾处留下你的点赞 👍和关注 💖,支持一下博主。同时记得收藏✨这篇文章,方便以后重新阅读。

94. 二叉树的中序遍历

94. 二叉树的中序遍历

题目:94. 二叉树的中序遍历

c 复制代码
/**
 * 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:
//     void inorder(TreeNode* root, vector<int>& v)
//     {
//         if(root == nullptr)
//             return;
//         inorder(root->left, v);
//         v.push_back(root->val);
//         inorder(root->right, v);
//     }
//     vector<int> inorderTraversal(TreeNode* root) {
//         vector<int> v;
//         inorder(root, v);
//         return v;
//     }
// };

// 方法二(非递归):先不访问根,压根,不管右节点,一直往左走,直到空,然后访问栈的根,然后去走根的右子树
class Solution {
public:
    vector<int> inorderTraversal(TreeNode* root) {
        stack<TreeNode*> st;
        vector<int> v;
        TreeNode* cur = root;
        while(cur != nullptr || !st.empty())
        {
            if(cur == nullptr)
            {
                cur = st.top();
                v.push_back(cur->val);
                cur = cur->right;//右子树非空走的是右子树;右子树为空再次循环时再次取栈的top
                st.pop();
            }
            else
            {
                st.push(cur);
                cur = cur->left;
            }
        }
        return v;
    }
};
  • 博主长期更新,博主的目标是不断提升阅读体验和内容质量,如果你喜欢博主的文章,请点个赞或者关注博主支持一波,我会更加努力的为你呈现精彩的内容。

🌈专栏推荐
😈魔王的修炼之路--C语言
😈魔王的修炼之路--数据结构
😈魔王的修炼之路--C++
😈魔王的修炼之路--QT
😈魔王的修炼之路--算法
😈魔王的修炼之路--力扣
😈魔王的修炼之路--牛客
😈魔王的修炼之路--剑指offer
😈魔王的修炼之路--Linux
更新不易,希望得到友友的三连支持一波。收藏这篇文章,意味着你将永久拥有它,无论何时何地,都可以立即找到重新阅读;关注博主,意味着无论何时何地,博主将永久和你一起学习进步,为你带来有价值的内容。

相关推荐
闻缺陷则喜何志丹4 分钟前
【贪心 字典序 回文 最长公共前缀】LeetCode3734. 大于目标字符串的最小字典序回文排列|分数未知
c++·算法·力扣·贪心·字典序·回文·最长公共前缀
weixin_5142218522 分钟前
FDTD代码学习-1
学习·算法·lumerical·fdtd
AI柠檬1 小时前
机器学习:数据集的划分
人工智能·算法·机器学习
_OP_CHEN1 小时前
C++进阶:(四)set系列容器的全面指南
开发语言·c++·stl·set·multiset·关联式容器·setoj题
代码雕刻家1 小时前
1.4.课设实验-数据结构-单链表-文教文化用品品牌2.0
c语言·数据结构
让我们一起加油好吗1 小时前
【数论】裴蜀定理与扩展欧几里得算法 (exgcd)
算法·数论·裴蜀定理·扩展欧几里得算法·逆元
Geo_V2 小时前
提示词工程
人工智能·python·算法·ai
云边有个稻草人2 小时前
Rust 借用分割技巧:安全解构复杂数据结构
数据结构·安全·rust
侯小啾2 小时前
【22】C语言 - 二维数组详解
c语言·数据结构·算法
qq_479875432 小时前
Linux time function in C/C++【2】
linux·c语言·c++