由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 有人同看Populating Next Right Pointers in Each Node II的recursive写法么?
相关主题
"简单的"linklist的问题请教LEETCODE讲解部分的LCA一道题的变种。。
leetcode上的populate next node I and IIPrint a binary tree in level order but starting from leaf node up to root
leetcode populating next pointer 2remove a node (and its memory) from a doubly linked list
Populating Next Right Pointers in Each Node II两种DP
Populating Next Right Pointers in Each Node II树 inorder下个节点最好办法是啥
ms面试题目non recursive binary tree traversal in O(n) time and O(1) space
问了一个链表,1->2->3->4->5, 每两个交换,2->1->4->3->5问一道careercup 5ed的题目(13.8)
Google second phone interviewInterview question::
相关话题的讨论汇总
话题: cur话题: prev话题: next话题: null
进入JobHunting版参与讨论
1 (共1页)
a***e
发帖数: 413
1
这道题和1我都是觉得iterative的比recursive的好写,看别人答案也更容易懂,(压
根儿没写出通过的recursion来)。下面这个都不知道思路是怎么地,特别是怎么能
connect(dummy.next);就保证 dummy.next 就是下一层的第一个了呢?见笑哈。
如果明天还看不出来就去VS里面调调。。。。。。
void connect(TreeLinkNode *root) {
if (root==NULL) return;

TreeLinkNode dummy(-1);
for (TreeLinkNode *cur = root, *prev=&dummy; cur; cur = cur->next)
{
if (cur->left!=NULL){
prev->next = cur->left;
prev = prev->next;
}

if (cur->right!=NULL){
prev->next = cur->right;
prev = prev->next;
}
}
connect(dummy.next);

}
w*******s
发帖数: 138
2
tail recursion跟循环差不多,利用之前build的linked list一层一层往下走

【在 a***e 的大作中提到】
: 这道题和1我都是觉得iterative的比recursive的好写,看别人答案也更容易懂,(压
: 根儿没写出通过的recursion来)。下面这个都不知道思路是怎么地,特别是怎么能
: connect(dummy.next);就保证 dummy.next 就是下一层的第一个了呢?见笑哈。
: 如果明天还看不出来就去VS里面调调。。。。。。
: void connect(TreeLinkNode *root) {
: if (root==NULL) return;
:
: TreeLinkNode dummy(-1);
: for (TreeLinkNode *cur = root, *prev=&dummy; cur; cur = cur->next)
: {

a***e
发帖数: 413
3
多谢楼上!
Sigh,recursion经常弄得我头大。我们专业也写程序,但从来不涉及那个。工作中也从
不用。
听学CS的人说多练就知道了。
f******o
发帖数: 1505
4
你拿一张纸画个 tree 出来,3层就够了,跟着 code 走一遍到 left most leaf, 就明
白了

【在 a***e 的大作中提到】
: 多谢楼上!
: Sigh,recursion经常弄得我头大。我们专业也写程序,但从来不涉及那个。工作中也从
: 不用。
: 听学CS的人说多练就知道了。

1 (共1页)
进入JobHunting版参与讨论
相关主题
Interview question::Populating Next Right Pointers in Each Node II
这个rebuild binary tree的问题ms面试题目
mirror 一个binary tree, 用non-recursive解法怎么做问了一个链表,1->2->3->4->5, 每两个交换,2->1->4->3->5
如何 reversely print一个single linked-list中各个node里的数据?Google second phone interview
"简单的"linklist的问题请教LEETCODE讲解部分的LCA一道题的变种。。
leetcode上的populate next node I and IIPrint a binary tree in level order but starting from leaf node up to root
leetcode populating next pointer 2remove a node (and its memory) from a doubly linked list
Populating Next Right Pointers in Each Node II两种DP
相关话题的讨论汇总
话题: cur话题: prev话题: next话题: null