问题描述:给定一个单链表的头结点pHead(该头节点是有值的,比如在下图,它的val是1),长度为n,反转该链表后,返回新链表的表头。
如当输入链表{1,2,3}时,经反转后,原链表变为{3,2,1},所以对应的输出为{3,2,1}。
结点的类
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}
解决思路
创建一个新的头节点(有值)通过遍历原链表,获取其值创建新的节点,以头插法的方式加入到链表中。
实现
public class Solution {
public ListNode ReverseList(ListNode head) {
ListNode temp = head;
ListNode linkedList = null;
while(temp!=null){
ListNode node = new ListNode(temp.val);
node.next = linkedList;
linkedList = node;
temp = temp.next;
}
return linkedList;
}
}