用栈实现二叉树的后序遍历
题目:用栈实现二叉树的后序遍历
//用两个栈,一个是辅助栈,一个用来存储结果
void postOrder(TreeNode *root)
{stack<TreeNode*> helper;stack<TreeNode*> output;if(root == NULL) return;while(root || !helper.empty()){if(root){helper.push(root);output.push(root);root = root->right;}else{root = helper.top();helper.pop();root = root->left;}} //弹栈output即可.while(!output.empty()){TreeNode *node = output.top();output.pop();visit(node);}
}