由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 谁有较好的iterative后序遍历binary tree的代码?
相关主题
求问把二叉树的recursive遍历改为stack实现的思路Lowest common ancestor of two nodes of Binary Tree
F家phone interview的一道题一道二叉树的题
这个Binary Tree的题来看看recovery BST 不考虑相同值的情况么?
转一些我blog上一些常见的二叉树面试问题和总结问一道二叉树遍历的问题? 谢谢!
How to find the kth biggest number in a BSTInterview question::
LC的BST iterator到底要考察什么?问几个有关Binary tree的题
bloomberg onsite题问个问题post order traveral using interation
说说面了几个老印的体会Amazon coding question
相关话题的讨论汇总
话题: current话题: node话题: temp话题: stack话题: while
进入JobHunting版参与讨论
1 (共1页)
c*r
发帖数: 9
1
我的最好解法要用两个stack。估计有更好的算法吧?
顺便问周末狂补coding的各位同仁好!
f*********5
发帖数: 576
2
while(1)
{
if(current->left) { s.push(current);current=current->left;}
else if(current->right) { s.push(current);current=current->right;}
else {
while(1)
{
printf();
if (stack.IsEmpty()) return;
temp=stack.top();
if(temp->left==current&&temp->right)
{ current=temp->right; break;}
stack.pop();
current=temp;
}
}
}

【在 c*r 的大作中提到】
: 我的最好解法要用两个stack。估计有更好的算法吧?
: 顺便问周末狂补coding的各位同仁好!

I**A
发帖数: 2345
3
不知道哪个更好理解,自己看吧
//POSTORDER traversal iteratively
public static void postOrderIteratively(BST mybst){
Stack nodestack = new Stack();
Node node = mybst.root;
Node prevnode = mybst.root;
//initialize the stack
while(node!=null){
nodestack.push(node);
node = node.left;
}
while( !nodestack.isEmpty()){
node = (Node)nodestack.pop();
//if this is the leaf node, then print the data o

【在 f*********5 的大作中提到】
: while(1)
: {
: if(current->left) { s.push(current);current=current->left;}
: else if(current->right) { s.push(current);current=current->right;}
: else {
: while(1)
: {
: printf();
: if (stack.IsEmpty()) return;
: temp=stack.top();

i***1
发帖数: 95
4
你这个好理解。上面那个,没看懂。。。
不过,楼主用两个stack的方法,应该是最容易理解的。

【在 I**A 的大作中提到】
: 不知道哪个更好理解,自己看吧
: //POSTORDER traversal iteratively
: public static void postOrderIteratively(BST mybst){
: Stack nodestack = new Stack();
: Node node = mybst.root;
: Node prevnode = mybst.root;
: //initialize the stack
: while(node!=null){
: nodestack.push(node);
: node = node.left;

c*r
发帖数: 9
5
多谢楼上两位。学习了!
1 (共1页)
进入JobHunting版参与讨论
相关主题
Amazon coding questionHow to find the kth biggest number in a BST
攒人品,amazon一面经历LC的BST iterator到底要考察什么?
MS面试题bloomberg onsite题
请教一个BST找Median的题目说说面了几个老印的体会
求问把二叉树的recursive遍历改为stack实现的思路Lowest common ancestor of two nodes of Binary Tree
F家phone interview的一道题一道二叉树的题
这个Binary Tree的题来看看recovery BST 不考虑相同值的情况么?
转一些我blog上一些常见的二叉树面试问题和总结问一道二叉树遍历的问题? 谢谢!
相关话题的讨论汇总
话题: current话题: node话题: temp话题: stack话题: while