94 Binary Tree Inorder Traversal(二叉树中序遍历Medium)
题目意思:二叉树中序遍历,结果存在vector<int>中
解题思路:迭代
迭代实现:
1 /** 2 * Definition for a binary tree node. 3 * struct TreeNode { 4 * int val; 5 * TreeNode *left; 6 * TreeNode *right; 7 * TreeNode(int x) : val(x), left(NULL), right(NULL) {} 8 * }; 9 */ 10 class Solution { 11 public: 12 vector<int> inorderTraversal(TreeNode* root) { 13 vector<int> ans; 14 if(root){ 15 stack<TreeNode*> s; 16 TreeNode* temp=root; 17 while(temp!=NULL||!s.empty()){ 18 while(temp!=NULL){ 19 s.push(temp); //将所有的左节点入栈 20 temp=temp->left; 21 } 22 temp=s.top(); 23 s.pop(); 24 ans.push_back(temp->val); //添加最下面的左节点 25 temp=temp->right; //添加倒数第二个左节点的右节点 26 } 27 } 28 return ans; 29 } 30 };