反转链表
反转一个单链表。
示例:
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL
分析
实现流程
- 1->2->3->4->5->NULL
- NULL<-1<-2 3->4->5->NULL
- NULL<-1<-2<-3 4->5->NULL
- NULL<-1<-2<-3<-4 5->NULL
- NULL<-1<-2<-3<-4<-5
代码
/**
* 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;
while(head != null){
ListNode tmp = head.next;
//当前节点的后一节点 = 前一节点
//同时因为前一节点总是首节点
head.next = pre;
pre = head;
head = tmp;
}
return pre;
}
}