力扣:94.二叉树的中序遍历

  1. 仅练习迭代写法
  2. 时间复杂度是 O(n)O(n)O(n),空间复杂度是 O(n)O(n)O(n)
  3. 是辅助栈来解决这个问题
  4. 栈用 push
  5. vectorpush_back
  6. 不要访问空指针 nullptr,防止越界
cpp 复制代码
class Solution {
public:
    vector<int> inorderTraversal(TreeNode* root) {
        vector<int> res;
        TreeNode *cur = root;
        stack<TreeNode*> stk;
        while ( !stk.empty() || cur ) {
            while ( cur ) {
                stk.push( cur );
                cur = cur->left;
            }
            cur = stk.top();
            stk.pop();
            res.push_back( cur->val );
            cur = cur->right;
        }
        return res;
    }
};
相关推荐
Dlrb121114 小时前
C语言-指针三
c语言·算法·指针·const·命令行参数
Tisfy14 小时前
LeetCode 2540.最小公共值:双指针(O(m+n))
算法·leetcode·题解·双指针
IronMurphy14 小时前
【算法四十七】152. 乘积最大子数组
算法
淘矿人15 小时前
Claude辅助DevOps实践
java·大数据·运维·人工智能·算法·bug·devops
Cosolar15 小时前
万字详解:RAG 向量索引算法与向量数据库架构及实战
数据库·人工智能·算法·数据库架构·milvus
小江的记录本16 小时前
【Java基础】泛型:泛型擦除、通配符、上下界限定(附《思维导图》+《面试高频考点清单》)
java·数据结构·后端·mysql·spring·面试·职场和发展
落羽的落羽17 小时前
【算法札记】练习 | Week4
linux·服务器·数据结构·c++·人工智能·算法·动态规划
萑澈18 小时前
算法竞赛入门:C++ STL核心用法与时空复杂度速查手册
数据结构·c++·算法·stl
Godspeed Zhao18 小时前
从零开始学AI16——SVM
算法·机器学习·支持向量机