题意:给出一个单链表,将其倒序。
思路:用递归
(1)如果结点为空,直接返回
(2)如果只有一个结点,返回当前结点
(3)两个结点以上,以下一结点为参数,返回后,将下一结点的next赋值为当前结点,如果当前结点为头结点,将其next结点置为空
代码如下:
class ListNode
{
int val;
ListNode next;
ListNode(int x) { val = x; next = null;}
}
class Solution
{
public ListNode reverseList(ListNode head)
{
ListNode p = head;
if (null == p) return null;
if (null == p.next)
{
return p;
}
ListNode q = reverseList(p.next);
p.next.next = p;
if (p == head)
{
p.next = null;
}
return q;
}
}