非递归实现树的前序遍历
Posted wangdake_tec
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了非递归实现树的前序遍历相关的知识,希望对你有一定的参考价值。
/*binary-tree-postorder-traversal*/ /***************************/ /* Given a binary tree, return the postorder traversal of its nodes‘ values. For example: Given binary tree{1,#,2,3}, 1 2 / 3 return[3,2,1]. Note: Recursive solution is trivial, could you do it iteratively? */ /****************************/ struct TreeNode{ int val; TreeNode *left; TreeNode *right; TreeNode(int x):val(x),left(NULL),right(NULL){} } vector<int> postorder(TreeNode *root) { stack<TreeNode *> s; vector<int> res; if(root==NULL) return res; s.push(root); while(!s.empty()){ ListNode *temp=s.top(); s.pop(); res.push_back(temp->val); if(temp->right!=NULL) s.push(temp->right); if(temp->left!=NULL) s.push(temp->left); } return res; }
以上是关于非递归实现树的前序遍历的主要内容,如果未能解决你的问题,请参考以下文章