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 }