由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 关于inordertraversal 的iterative way
相关主题
FB面试题:binary tree inorder successor这个rebuild binary tree的问题
大牛帮我看看这哪错了? iterative inorder traversalL家的面试体验让人有些无语
inorder traversal的空间复杂度是O(N) 还是O(logN)?树 inorder下个节点最好办法是啥
求问把二叉树的recursive遍历改为stack实现的思路least common ancestor的疑惑
再问个C++的基础问题(in order traversal)问两道facebook面试题
leetcode的OJ也会有错吗??插入节点到complete binary tree的末尾
请大神进来看看为什么我的iterative preorder tranverse过不了,多谢LeetCode题Binary Tree Inorder Traversal
树中序遍历,要求左子树用递归,右子树用iterationbst中序遍历c++ class iterator
相关话题的讨论汇总
话题: node话题: stack话题: root话题: iterative
进入JobHunting版参与讨论
1 (共1页)
s******d
发帖数: 61
1
Iterative way ofr single preorderTraversal
public void preorderTraversal(Node root){
Stack stack=new Stack();
stack.push(root);
while(true){
Node current=stack.pop();
if(current==null) break;
Node right=current.getRight();
if(right!=null)
stack.push(right);
Node left=current.getLeft();
if(left!=null)
stack.push(left);
}
}
这个是preorderTraversal, 这样怎么转成inorder呢?
s******d
发帖数: 61
2
还是没想出来啊
e*****3
发帖数: 610
3
以前见过这种pushLeft的帮法,你可以调试一下。
public void inorderTraverse(Node root) {
Stack s = new Stack();
pushLeft(root, s);

while (s.size() > 0) {
Node node = s.pop();
print(node); // Visit the current node
pushLeft(node.right, s); // Visit the right subtree
}
}
private void pushLeft(Node node, Stack stack) {
while (node != null) {
stack.push(node);
node = node.left;
}
}

【在 s******d 的大作中提到】
: 还是没想出来啊
s******d
发帖数: 61
4
thanks~I think it works
d*******d
发帖数: 2050
5
in c:
void inorder(Node * root){
stack mystack;
Node * p = root;
while( !mystack.empty() || p != 0 ){
if( p ){
mystack.push(p);
p = p->left;
}else{
p = mystack.top();
mystack.pop();
// do something to p;
p = p->right;
}
}
}

【在 s******d 的大作中提到】
: Iterative way ofr single preorderTraversal
: public void preorderTraversal(Node root){
: Stack stack=new Stack();
: stack.push(root);
: while(true){
: Node current=stack.pop();
: if(current==null) break;
: Node right=current.getRight();
: if(right!=null)
: stack.push(right);

1 (共1页)
进入JobHunting版参与讨论
相关主题
bst中序遍历c++ class iterator再问个C++的基础问题(in order traversal)
G电面面经:BT的iterator inorder traversalleetcode的OJ也会有错吗??
Tree的traversal也分BFS和DFS?请大神进来看看为什么我的iterative preorder tranverse过不了,多谢
求教:binary search tree中找第i大的数树中序遍历,要求左子树用递归,右子树用iteration
FB面试题:binary tree inorder successor这个rebuild binary tree的问题
大牛帮我看看这哪错了? iterative inorder traversalL家的面试体验让人有些无语
inorder traversal的空间复杂度是O(N) 还是O(logN)?树 inorder下个节点最好办法是啥
求问把二叉树的recursive遍历改为stack实现的思路least common ancestor的疑惑
相关话题的讨论汇总
话题: node话题: stack话题: root话题: iterative