中序遍历迭代法
c++实现模板
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) {}
};
void inOrder(TreeNode* root) {
vector<TreeNode*> stk;
while(!stk.empty()||root!=nullptr){
while(root!=nullptr){
stk.push_back(root);
root=root->left;
}
root=stk.back();
stk.pop_back();
cout << root->val;
root=root->right;
}
}