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

相关推荐
末日汐32 分钟前
STL-list
开发语言·c++
qq_4335545433 分钟前
C++ list数据删除、list数据访问、list反转链表、list数据排序
开发语言·c++·list
初遇你时动了情33 分钟前
dart常用语法详解/数组list/map数据/class类详解
数据结构·flutter·list
uyeonashi38 分钟前
【从零开始学习QT】快捷键、帮助文档、Qt窗口坐标体系
开发语言·c++·qt·学习
地平线开发者1 小时前
征程 6EM 常见 QConfig 配置解读与示例
算法·自动驾驶
GEEK零零七1 小时前
Leetcode 1908. Nim 游戏 II
算法·leetcode·博弈论
愚润求学2 小时前
【Linux】mmap文件内存映射
linux·运维·服务器·开发语言·c++
sbc-study2 小时前
混沌映射(Chaotic Map)
开发语言·人工智能·python·算法
Magnum Lehar2 小时前
vulkan游戏引擎game_types.h和生成build.bat实现
java·算法·游戏引擎
Christophe Chen2 小时前
strcat及其模拟实现
c语言·算法