【解题思路】
首先new一个新的链表头,每次取出原链表的头结点,加入新链表的头节点后的第一个节点,重复直到原链表全部移至新的链表。
/**
* 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 newHead = new ListNode();
newHead.next = null;
ListNode p, q = newHead, r;
while(head != null)
{
q = head;
r = newHead.next;
newHead.next = q;
head = q.next;
q.next = r;
}
return newHead.next;
}
}