leetcode 55:binary-tree-inorder-traversal

题目描述

给出一棵二叉树,返回这棵树的中序遍历
例如:
给出的二叉树为{1,#,2,3},
1
  \
  2
 /
3
返回[1,3,2].

备注:递归的解法太没有新意了,你能用迭代的方法来解这道题吗?
代码如下:
 1  vector<int> inorderTraversal(TreeNode* root) {
 2         TreeNode* cur = root;
 3         stack<TreeNode*> s;
 4         vector<int> ret;
 5         while(cur || !s.empty())
 6         {
 7             while(cur)
 8             {
 9                 s.push(cur);
10                 cur = cur->left;
11             }
12             TreeNode* top = s.top();
13             ret.push_back(top->val);
14             s.pop();
15             cur = top->right;
16         }
17         return ret;
18     }

 

 
posted @ 2020-08-10 10:48  请叫我小小兽  阅读(120)  评论(0编辑  收藏  举报