反转一个单链表。
示例:
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL
解题思路:
dummy.next = 1 head = 1 next = 2
- 1->2->3->4->5->NULL
1.next = 3,2.next = dummy.next,dummy.next = 2,next = 1.next(3) - 2.2->1->3->4->5->NULL
重复以上步骤: - 3->2->1->4->5->NULL
- 4->3->2->1->5->NULL
- 5->4->3->2->1->NULL
class Solution {
public ListNode reverseList(ListNode head) {
if(head == null || head.next == null)
return head;
ListNode dummy = new ListNode(0);
ListNode next = new ListNode(0);
dummy.next = head;
next = head.next;
while(head.next != null){
head.next = next.next;
next.next = dummy.next;
dummy.next = next;
next = head.next;
}
return dummy.next;
}
}