题目描述:
Reverse a singly linked list.
Example:
Input: 1->2->3->4->5->NULL Output: 5->4->3->2->1->NULL
中文理解:反转一个给定链表。
解题思路:使用头插法,将原始链表的后面的节点不断插入到头结点的后面。
代码(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 res=new ListNode(0);
while(head!=null){
ListNode tmp=new ListNode(head.val);
tmp.next=res.next;
res.next=tmp;
head=head.next;
}
return res.next;
}
}