请问下这个递归单链表倒叙具体的过程
ooesb 2016-06-02 03:49:42
public Node reverse(Node first)
{
if(first == null) return null;
if(first.next == null) return first;
Node second = first.next;
Node rest = reverse(second);
second.next = first;
first.next = null;
return rest;
}
标红这段代码具体怎么运行到最后的。没看很懂。
是从第N个开始向前面调换位子吗。
Node rest = reverse(second);
像这样
Node rest = reverse(2);
Node rest = reverse(3);
…
Node rest = reverse(last);
是会从链表最后一个元素开始返回值吗直到第一个吗。
second.next = first;
first.next = null;
return rest;