反转一个单链表

分析:我们定义三个标记,记录上一个值,当前值,下一个值。就可以实现链表的反转了

JAVA:

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
class Solution {
    public ListNode reverseList(ListNode head) {
        ListNode pre=null;//记录上一个
        ListNode cur=head;//当前记录
        while(cur!=null)
        {
            ListNode next=cur.next;//先把下一个值得地址存起来
            cur.next=pre;//反转指向pre=NULL
            pre=cur;//pre向后移,记住当前值得地址
            cur=next;//cur也向后移,重复前面得动作,知道cur为NULL
        }
        return pre;
    }
}