版权声明:转载请注明来源 https://blog.csdn.net/tangyuan_sibal/article/details/88544626
输入一个链表,反转链表后,输出新链表的表头。
/*
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;
if(head.next==null)
return head;
ListNode p,q;
//将p指向头节点的下一个节点
p = head.next;
head.next = null;
//当p不为空的时候,
//一直将p插到head前面,而head一直保持为当前的头节点
//也就是当前插入的p
//q用来保存下一个节点,作为下一次取值
while(p!=null)
{
q = p.next;
p.next = head;
head = p;
p = q;
}
return head;
}
}