概述
将单项链表进行反转,主要是注意两个问题
1.从首节点开始,按照指针依次遍历所有的节点,从而返回尾节点。
2.从尾节点开始,依次将反向修改指针。
如下是实现:
public static Node reverse(Node node) {
if (node == null || node.next == null) {
return node;
} else {
Node headNode = reverse(node.next);
node.next.next = node;
node.next = null;
return headNode;
}
}
PS:下图中,每次递归都是地址传递,这个很重要,如果实在不能理解,那么就debug跟踪一下代码就可以明白什么意思了
image.png
网友评论