反转链表
题目描述
输入一个链表,反转链表后,输出新链表的表头。
思路
三指针p,q,r
/*
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}*/
public class Solution {
public ListNode ReverseList(ListNode head) {
ListNode p = null,q= head,r; // q,r 同步走
while (q!=null){
r = q.next;
q.next = p;
p = q;
if(r==null){ //r 是q 的后一个,如果后一个为null 直接返回
return q;
}else{
q = r;
}
}
return q;
}
}