代码改变世界

Binary Tree Preorder Traversal

2015-04-01 10:00  笨笨的老兔子  阅读(116)  评论(0编辑  收藏  举报

二叉树的前序遍历

思路:小心程序运行栈溢出,用stack模拟

  1. class Solution {
  2. public:
  3. vector<int> preorderTraversal(TreeNode *root) {
  4. stack<TreeNode*> stk;
  5. vector<int> res;
  6. if (root)
  7. stk.push(root);
  8. else
  9. return res;
  10. TreeNode* tmpNode;
  11. while (!stk.empty())
  12. {
  13. tmpNode = stk.top();
  14. res.push_back(tmpNode->val);
  15. stk.pop();
  16. if (tmpNode->right !=NULL){
  17. stk.push(tmpNode->right);
  18. }
  19. if (tmpNode->left != NULL){
  20. stk.push(tmpNode->left);
  21. }
  22. }
  23. return res;
  24. }
  25. };