由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 大牛帮我看看这哪错了? iterative inorder traversal
相关主题
inorder traversal的空间复杂度是O(N) 还是O(logN)?如何判断两个BST的元素是一样的?
关于inordertraversal 的iterative way[leetcode] Binary Tree from Inorder & Postorder Traversal
这个inorder traversal 有错嘛,为什么leetcode 总报memory limit exceed?讨论一道leetcode上面的题
写了个symmetric tree的stack based iterative实现,有个bugConstruct Binary Tree from Preorder and Inorder Traversal算法复杂度?
Tree的traversal也分BFS和DFS?这道题如何得到最优解
树中序遍历,要求左子树用递归,右子树用iteration树 inorder下个节点最好办法是啥
再问个C++的基础问题(in order traversal)G电面面经:BT的iterator inorder traversal
攒人品,amazon一面经历请教一道Leetcode 题,多谢
相关话题的讨论汇总
话题: treenode话题: top话题: null话题: left话题: int
进入JobHunting版参与讨论
1 (共1页)
C*******n
发帖数: 193
1
/**
* Definition for binary tree
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
public:

vector inorderTraversal(TreeNode *root) {
vector ret;
if(root) {

stack stack;
stack.push(root);

TreeNode* top = stack.top();
while(!stack.empty() || top!=NULL){

while(top->left!=NULL){
stack.push(top->left);
top = top->left;
}
top = stack.top();
ret.push_back(top->val);
stack.pop();
top = top->right;


}
}
return ret;
}
};
d********o
发帖数: 15
2
好像每回都跳掉了top->right 的node没有入栈
y******0
发帖数: 93
3
top = top->right;之后top可能为null,然后你上面又继续top->left

【在 C*******n 的大作中提到】
: /**
: * Definition for binary tree
: * struct TreeNode {
: * int val;
: * TreeNode *left;
: * TreeNode *right;
: * TreeNode(int x) : val(x), left(NULL), right(NULL) {}
: * };
: */
: class Solution {

f********h
发帖数: 155
4
// 不是牛;这样简单
class Solution {
public:

vector inorderTraversal(TreeNode *root) {
vector ret;
stack stack;
TreeNode * top = root;
while (!stack.empty() || top != null) {
if (top != null) {
stack.push(top);
top = top->left;
} else {
top = stack.top();
stack.pop();
ret.push_back(top->val);
top = top->right;
}
}
return ret;
}
};
H******7
发帖数: 1728
5
good one

★ 发自iPhone App: ChineseWeb 8.7

【在 f********h 的大作中提到】
: // 不是牛;这样简单
: class Solution {
: public:
:
: vector inorderTraversal(TreeNode *root) {
: vector ret;
: stack stack;
: TreeNode * top = root;
: while (!stack.empty() || top != null) {
: if (top != null) {

b******g
发帖数: 3616
6
基本就是楼上几位说的两个问题
1.top->right始终没有进stack。当第二层的while loop结束后,top访问到了一个没有
left child的节点,输出该节点后访问到了他的right child(top=top->right),假设
这个节点为X,然后因为stack非空再次回到内层的while loop开始把这个x的left
child依次压入,但x始终没有入栈。
2.如果top->right为NULL,因为stack非空,仍旧会回到内层while loop,此时你直接
访问了NULL->left: while(top->left!=NULL)

【在 C*******n 的大作中提到】
: /**
: * Definition for binary tree
: * struct TreeNode {
: * int val;
: * TreeNode *left;
: * TreeNode *right;
: * TreeNode(int x) : val(x), left(NULL), right(NULL) {}
: * };
: */
: class Solution {

1 (共1页)
进入JobHunting版参与讨论
相关主题
请教一道Leetcode 题,多谢Tree的traversal也分BFS和DFS?
Leetcode: Symmetric Tree有没有好的iterative的解法?树中序遍历,要求左子树用递归,右子树用iteration
[leetcode] Maximum Depth of Binary Tree再问个C++的基础问题(in order traversal)
leetcode上Symmetric Tree这道题怎么用iterative的方法做?攒人品,amazon一面经历
inorder traversal的空间复杂度是O(N) 还是O(logN)?如何判断两个BST的元素是一样的?
关于inordertraversal 的iterative way[leetcode] Binary Tree from Inorder & Postorder Traversal
这个inorder traversal 有错嘛,为什么leetcode 总报memory limit exceed?讨论一道leetcode上面的题
写了个symmetric tree的stack based iterative实现,有个bugConstruct Binary Tree from Preorder and Inorder Traversal算法复杂度?
相关话题的讨论汇总
话题: treenode话题: top话题: null话题: left话题: int