15.反转链表
题目描述
输入一个链表,反转链表后,输出新链表的表头。
解题思路:设置一个空指针pre,将head指针的下一个结点保存为next,再将pre赋给head的下一个结点,然后,pre来到head的位置,head来到next的位置,最后head为kong时,pre来到了链表的末尾,返回pre。
public ListNode ReverseList(ListNode head) {
if(head==null)
return head;
ListNode pre=null;
ListNode next=null;
while(head!=null)
{
next=head.next;
head.next=pre;
pre=head;
head=next;
}
return pre;
}
public ListNode ReverseList(ListNode head) {
if(head==null || head.next==null)
return head;
ListNode node= ReverseList(head.next);
head.next.next=head;
head.next=null;
return node;
}