由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - Reverse Linked list 用java实现
相关主题
请教一道单链表问题remove a node (and its memory) from a doubly linked list
再问大牛们leetcode上面Linkedlist的题,Reverse Nodes in k-GM家 onsite 悲剧,同胞们弄死烙印吧
Reverse LinkedList II 怎样一遍写对啊?攒个人品发碗F家面筋
reverse链表一道msft的题
[BSSD]回国一趟回来做题很难进入状态了,顺便问下那个Merge k Sorted发个pure storage的interviewstreet题目
发个面试coding题,攒人品面试题
问个reverse linked listleetcode Sort List
reverse linked list 问题, double 和 single 的不同leetcode上的Sort List那道题
相关话题的讨论汇总
话题: list话题: reference话题: prev话题: java话题: listnode
进入JobHunting版参与讨论
1 (共1页)
f*****C
发帖数: 84
1
能不能做到O(N)TIME O(1)SPACE??
java好像不能pass by value吧,像c/cpp那样操作指针会把current.next指向null(
prev)
有木有办法实现??
f********c
发帖数: 147
2
java所有都是pass by value吧,没有pass by reference
另外这个用 头插法 很容易的吧,连recursion都不用的
n******n
发帖数: 12088
3
说反了。

【在 f********c 的大作中提到】
: java所有都是pass by value吧,没有pass by reference
: 另外这个用 头插法 很容易的吧,连recursion都不用的

f*****C
发帖数: 84
4
比如
public class Foo{
public void foo(List list){
lalalala(list);
}
public void lalalala(List list){
list.clear();
}
}
这样的话foo里面的list也会被清空啊,不是把list指向的地址传给lalalala吗?两个
list指向的是同一个地址
头插法是神马?? 我看的geeksforgeeks上面的c解法 然后想用java实现 发现里
面有个传值prev实现不了

【在 f********c 的大作中提到】
: java所有都是pass by value吧,没有pass by reference
: 另外这个用 头插法 很容易的吧,连recursion都不用的

z******y
发帖数: 444
5

现在的官方说法是java无论是primitive还是reference类型都是pass by value,只不
过对于reference类型这个value是reference value

【在 f*****C 的大作中提到】
: 比如
: public class Foo{
: public void foo(List list){
: lalalala(list);
: }
: public void lalalala(List list){
: list.clear();
: }
: }
: 这样的话foo里面的list也会被清空啊,不是把list指向的地址传给lalalala吗?两个

f********c
发帖数: 147
6
是的,所有都是pass by value,对于object,传递的是reference 这个value,就像C+
+的pointer.

【在 z******y 的大作中提到】
:
: 现在的官方说法是java无论是primitive还是reference类型都是pass by value,只不
: 过对于reference类型这个value是reference value

f********c
发帖数: 147
7
Java所有都是pass by value,只不过有时候这个value is reference

【在 n******n 的大作中提到】
: 说反了。
f********c
发帖数: 147
8
是的,这个情况是把list的reference传递了,这种情况仍然是pass by value,只不过
这个value是个reference,就像c++里面的Pointer,是原来list reference的一个copy
。如果你在lalalala里面改变这个reference,它就指向其他的obj了,和foo里面的
list一点关系都没有了,你可以试试。
java code:
public void reverse(ListNode root) {
ListNode curr = root;
ListNode prev = null;
while(curr != null) {
ListNode next = curr.next;
curr.next = prev;
prev = curr;
curr = next;
}
root = prev;
}

【在 f*****C 的大作中提到】
: 比如
: public class Foo{
: public void foo(List list){
: lalalala(list);
: }
: public void lalalala(List list){
: list.clear();
: }
: }
: 这样的话foo里面的list也会被清空啊,不是把list指向的地址传给lalalala吗?两个

f*****C
发帖数: 84
9
我试过这个 root会只含reverse之前的第一个值 不过prev是含有reverse的
ListNode 我就把这个method return type变成了ListNode 然后return prev了
java 8 在intellij community version运行的...
不知道是不是java8的问题 这样直接assign reference好像不行了...

copy

【在 f********c 的大作中提到】
: 是的,这个情况是把list的reference传递了,这种情况仍然是pass by value,只不过
: 这个value是个reference,就像c++里面的Pointer,是原来list reference的一个copy
: 。如果你在lalalala里面改变这个reference,它就指向其他的obj了,和foo里面的
: list一点关系都没有了,你可以试试。
: java code:
: public void reverse(ListNode root) {
: ListNode curr = root;
: ListNode prev = null;
: while(curr != null) {
: ListNode next = curr.next;

1 (共1页)
进入JobHunting版参与讨论
相关主题
leetcode上的Sort List那道题[BSSD]回国一趟回来做题很难进入状态了,顺便问下那个Merge k Sorted
请问大牛们如何提高解决leetcode上面Linkedlist的题的能力?发个面试coding题,攒人品
Leetcode swap Paris 这个怎么改进?问个reverse linked list
问几个有关Binary tree的题reverse linked list 问题, double 和 single 的不同
请教一道单链表问题remove a node (and its memory) from a doubly linked list
再问大牛们leetcode上面Linkedlist的题,Reverse Nodes in k-GM家 onsite 悲剧,同胞们弄死烙印吧
Reverse LinkedList II 怎样一遍写对啊?攒个人品发碗F家面筋
reverse链表一道msft的题
相关话题的讨论汇总
话题: list话题: reference话题: prev话题: java话题: listnode