题意:给出一个单链表,将其倒序。
思路:用递归
(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;
}
}
本文介绍了一种使用递归方法实现单链表倒序的算法。通过递归调用,将链表的每个节点与其下一个节点进行反转链接,最终完成整个链表的倒序操作。

311

被折叠的 条评论
为什么被折叠?



