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
更新不易,希望得到友友的三连支持一波。收藏这篇文章,意味着你将永久拥有它,无论何时何地,都可以立即找到重新阅读;关注博主,意味着无论何时何地,博主将永久和你一起学习进步,为你带来有价值的内容。

相关推荐
努力努力再努力wz8 分钟前
【C++进阶系列】:万字详解红黑树(附模拟实现的源码)
java·linux·运维·c语言·开发语言·c++
cccyi713 分钟前
C/C++类型转换
c++
枫fengw14 分钟前
9.8 C++
开发语言·c++
宁檬精14 分钟前
算法练习——55.跳跃游戏
数据结构·算法·游戏
王璐WL15 分钟前
【C语言入门级教学】内存函数
c语言·开发语言·算法
啃啃大瓜16 分钟前
python常量变量运算符
开发语言·python·算法
熊文豪24 分钟前
【华为OD】找出通过车辆最多颜色
算法·华为od
Running_slave28 分钟前
位运算左移右移应该怎么玩?
前端·javascript·算法
塔中妖29 分钟前
【华为OD】环中最长子串2
算法·华为od
JCBP_1 小时前
QT(3)
开发语言·汇编·c++·qt·算法