【发布时间】:2012-02-23 00:25:15
【问题描述】:
考虑:
Node reverse(Node head) {
Node previous = null;
Node current = head;
Node forward;
while (current != null) {
forward = current.next;
current.next = previous;
previous = current;
current = forward;
}
return previous;
}
它究竟是如何反转列表的?
我知道它首先将第二个节点设置为forward。然后它说current.next 等于null 节点previous。然后它说previous 现在是current。最后current 变成forward?
我似乎无法理解这一点以及它是如何逆转的。有人可以解释一下这是如何工作的吗?
【问题讨论】:
-
from __future__ import braces? -
我的错..已修复到 java!
-
1.这段代码好像不是python... 2. list reverse是一个基本的算法,网上可以找到很多相关资料
-
我会在一张纸上画一个3节点的小链表,然后一步一步地过一遍算法,看看会发生什么。你可以在调试器中做同样的事情,但在纸上做这件事会迫使你真正思考每个状态是如何变化的。
-
Techlead 是你吗???
标签: java algorithm data-structures linked-list singly-linked-list