天天看点

[LeetCode] Reverse Linked List(递归与非递归反转链表)解题思路非递归实现代码1[C++]非递归实现代码2[C++]非递归实现代码3[Java]非递归实现代码4[Python]递归实现代码[C++]

reverse a singly linked list.

对于非递归实现,思路是依次将从第二个结点到最后一个结点的后继设为头结点,然后将该节点设为头结点(需记住将原头结点的后继设为空)。

对于递归实现,首先反转从第二个结点到最后一个结点的链表,然后再将头结点放到已反转链表的最后,函数返回新链表的头结点。

c++测试代码如下:

java测试代码如下: