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; } }