Java-反转链表
反转链表
http://www.nowcoder.com/questionTerminal/75e878df47f24fdc9dc3e400ec6058ca
1->2->3
head=1;
实现反转,先将1->2断开,则p=2,为了不使3丢失,q=3,将p指向1,即p.next=head;然后循环,p只要不是空,就可以将(1)q=p.next; (2)p.next=head; (3)head=p;(4)p=q;向后迭代;
其中(2)是赋值,(1)(3)(4)是记录值,向后循环
/*
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.next;
ListNode q=null;
head.next=null;
while(p!=null){
q=p.next;
p.next=head;
head=p;
p=q;
}
return head;
}
}
vivo公司福利 364人发布