c*a
2 楼
是不是shuffle打乱链表啊
copy a linked list where the data member of each node in the linked list
could be any other node in the linked list.
copy a linked list where the data member of each node in the linked list
could be any other node in the linked list.
w*s
3 楼
perfect if you qualify.
【在 k****r 的大作中提到】
: http://www.mitbbs.com/article_t/Piebridge/32576601.html
: 完美情人啊
【在 k****r 的大作中提到】
: http://www.mitbbs.com/article_t/Piebridge/32576601.html
: 完美情人啊
v*n
5 楼
pp is not clear
l*n
7 楼
这个是小兰,还是新蛋
【在 k****r 的大作中提到】
: http://www.mitbbs.com/article_t/Piebridge/32576601.html
: 完美情人啊
【在 k****r 的大作中提到】
: http://www.mitbbs.com/article_t/Piebridge/32576601.html
: 完美情人啊
M*5
8 楼
写了个c++版本的,O(n)的time efficiency和O(n)的space efficiency,不知道有没有
更优化的?比如no extra space and only one time walk-through?
struct Node{
Node* data;
Node* next;
};
Node* copyLinkedList(Node* head){
if(!head)
return NULL;
std::map node_map;
Node* new_head = copyLinkedListHelper(head, node_map);
Node* cur = new_head;
while(head){
cur->node = node_map[head->node];
cur = cur->next;
head = head->next;
}
return new_head;
}
Node* copyLinkedListHelper(Node* head, std::map& n_map){
if(!head)
return NULL;
Node* n = new Node;
n_map[head] = n;
n->next = copyLinkedListHelper(head->next, n_map);
return n;
}
更优化的?比如no extra space and only one time walk-through?
struct Node{
Node* data;
Node* next;
};
Node* copyLinkedList(Node* head){
if(!head)
return NULL;
std::map
Node* new_head = copyLinkedListHelper(head, node_map);
Node* cur = new_head;
while(head){
cur->node = node_map[head->node];
cur = cur->next;
head = head->next;
}
return new_head;
}
Node* copyLinkedListHelper(Node* head, std::map
if(!head)
return NULL;
Node* n = new Node;
n_map[head] = n;
n->next = copyLinkedListHelper(head->next, n_map);
return n;
}
c*a
10 楼
写出来了
public static ListNode copyLink(ListNode node){
ListNode original = node, head = null, newOne=null,next;
//insert node inbetween, so abc becomes aabbcc
while(original!=null){
newOne = new ListNode(original.val);
next = original.next;
original.next = newOne;
newOne.next =next;
original = next;
}
//new list
head = node.next;
//copying random link
original = node;
while(original!=null){
original.next.datamember = original.datamember.next;
original = original.next.next;
}
//separte two lists out
original = node;
newOne = original.next;
while(original!=null && newOne!=null){
next = newOne.next;
if(next!=null){
original.next= next;
newOne.next = next.next;
newOne = newOne.next;
}
original = next;
}
return head;
}
public static ListNode copyLink(ListNode node){
ListNode original = node, head = null, newOne=null,next;
//insert node inbetween, so abc becomes aabbcc
while(original!=null){
newOne = new ListNode(original.val);
next = original.next;
original.next = newOne;
newOne.next =next;
original = next;
}
//new list
head = node.next;
//copying random link
original = node;
while(original!=null){
original.next.datamember = original.datamember.next;
original = original.next.next;
}
//separte two lists out
original = node;
newOne = original.next;
while(original!=null && newOne!=null){
next = newOne.next;
if(next!=null){
original.next= next;
newOne.next = next.next;
newOne = newOne.next;
}
original = next;
}
return head;
}
k*8
11 楼
不知道为什么要贴这种看不清楚脸的照片去征婚
M*5
12 楼
这个idea很好,duplicate linked list,估计我要是在phone interview的时候这么写
肯定会出bug,但是这在space上应该是很优化的
【在 c*****a 的大作中提到】
: 写出来了
: public static ListNode copyLink(ListNode node){
: ListNode original = node, head = null, newOne=null,next;
: //insert node inbetween, so abc becomes aabbcc
: while(original!=null){
: newOne = new ListNode(original.val);
: next = original.next;
: original.next = newOne;
: newOne.next =next;
: original = next;
肯定会出bug,但是这在space上应该是很优化的
【在 c*****a 的大作中提到】
: 写出来了
: public static ListNode copyLink(ListNode node){
: ListNode original = node, head = null, newOne=null,next;
: //insert node inbetween, so abc becomes aabbcc
: while(original!=null){
: newOne = new ListNode(original.val);
: next = original.next;
: original.next = newOne;
: newOne.next =next;
: original = next;
y*9
14 楼
这道题貌似超有名 前段时间有人发过 没看过答案写最优解我觉得很难啊
r*9
19 楼
有coupon没?
c*t
22 楼
赞,问一下,最后一次拆分循环
条件 while(original!=null && newOne!=null), 可不可以改为while(original!=
null)什么情况original不是null, newOne为null?
【在 c*****a 的大作中提到】
: 写出来了
: public static ListNode copyLink(ListNode node){
: ListNode original = node, head = null, newOne=null,next;
: //insert node inbetween, so abc becomes aabbcc
: while(original!=null){
: newOne = new ListNode(original.val);
: next = original.next;
: original.next = newOne;
: newOne.next =next;
: original = next;
条件 while(original!=null && newOne!=null), 可不可以改为while(original!=
null)什么情况original不是null, newOne为null?
【在 c*****a 的大作中提到】
: 写出来了
: public static ListNode copyLink(ListNode node){
: ListNode original = node, head = null, newOne=null,next;
: //insert node inbetween, so abc becomes aabbcc
: while(original!=null){
: newOne = new ListNode(original.val);
: next = original.next;
: original.next = newOne;
: newOne.next =next;
: original = next;
c*e
27 楼
我还是对包子兴趣更大一点
【在 k****r 的大作中提到】
: http://www.mitbbs.com/article_t/Piebridge/32576601.html
: 完美情人啊
【在 k****r 的大作中提到】
: http://www.mitbbs.com/article_t/Piebridge/32576601.html
: 完美情人啊
相关阅读
求教offer选择问题,以及A家选组的问题openID 和 OAuth2是用来干嘛的毕业后工作半年至一年的candidate面试VMware 的 performance engineer 是干什么的啊?EPIC 11月24日附近 ONSITE 号召贴急问:OPT在start date之后批准,start date是什麽?dropbox online coding时间请教一段英文是啥意思求问如何面试中虐烙印Opt延长到48个月New Grad 找工作挺难啊Snapchat最近很活跃啊FB一般多久能变成senior请教 print factors 这个题给了口头OFFER, 但是不见paper work,咋办?FB onsite后一般多久出结果?visa problem国内有五年IT工作经验的人,能申请senior的工作吗?valid number才知道印度人的H1签证都是5年的。中国人的命好苦 (转载)