题解 | #反转链表#
反转链表
http://www.nowcoder.com/practice/75e878df47f24fdc9dc3e400ec6058ca
反转链表的解题思路
注意:本题是没有头节点的链表,如果当成是有头节点的链表,可能会报空指针异常!!!!
思路:实现链表反转,相当于把原链表从头遍历,一个一个拆下来,然后利用头插法重新插入另外一个新链表中,当原链表遍历完成之后,新链表就实现了旧链表的反转
```/*
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}*/
public class Solution {
public ListNode ReverseList(ListNode head) {
if(head==null)
{
return null;
}
ListNode p=head;
ListNode q=null;
while(p!=null)
{
head=p.next;
p.next=q;
q=p;
p=head;
}
return q;
}
}