反转链表
反转一个单链表。
示例:
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL
进阶:
你可以迭代或递归地反转链表。你能否用两种方法解决这道题?
分析
这道题最直接的办法就是设三个指针,然后分别反转指针位置,用这个方法的好处就在于可以很好的理解链表的结构。
>
代码
class Solution {
public ListNode reverseList(ListNode head) {
if( head == null) return null;
ListNode pre = null;
ListNode cur = head;
ListNode lat = head.next;
while(lat != null){
cur.next = pre;
pre = cur;
cur = lat;
lat = lat.next;
}
cur.next = pre;
return cur;
}
}