1. 题目

2. 方法一递归
2.1. 代码
class Solution {
public:
vector<int> inorderTraversal(TreeNode* root) {
dfs(root);
return temp;
}
vector<int> temp;
void dfs(TreeNode* root){
if(root==NULL) return;
dfs(root->left);
temp.push_back(root->val);
dfs(root->right);
}
};
2.2. 结果

3. 方法一非递归
3.1. 代码
class Solution {
public:
vector<int> inorderTraversal(TreeNode* root) {
vector<int> temp;
if(root==NULL) return temp;
stack<TreeNode*> nodetempstack;
while(root!=NULL||!nodetempstack.empty()){
if(root!=NULL){
nodetempstack.push(root);
root=root->left;
}
else{
temp.push_back(nodetempstack.top()->val);
root=nodetempstack.top()->right;
nodetempstack.pop();
}
}
return temp;
}
};
3.2. 结果

相关文章: