- 仅练习迭代写法
- 时间复杂度是 O(n)O(n)O(n),空间复杂度是 O(n)O(n)O(n)
- 是辅助栈来解决这个问题
- 栈用
push vector用push_back- 不要访问空指针
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;
}
};