首页 > 代码库 > 非递归实现树的前序遍历
非递归实现树的前序遍历
/*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; }
非递归实现树的前序遍历
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。