题目
给定一个二叉树的根节点root
,返回它的中序遍历。
题解
迭代速度>递归。
vector<int> inorderTraversal(TreeNode* root) {
vector<int> ans;
if(root == nullptr)
return ans;
stack<TreeNode*> s;
while(!s.empty() || root != nullptr){ // 注意判定条件
if(root != nullptr){
s.push(root);
root = root->left;
}
else{
root = s.top();
s.pop();
ans.push_back(root->val); // 存储遍历结果
root = root->right;
}
}
return ans;
}
主要复习一下中序遍历的迭代写法+栈操作。