题解
/*
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}*/
public class Solution {
public ListNode ReverseList(ListNode head) {
ListNode newHead = new ListNode(-1);
while(null != head){
ListNode nextHead = head.next;
head.next = newHead.next;
newHead.next = head;
head = nextHead;
}
return newHead.next;
}
} 思路
以下观点纯粹个人理解(主要围绕新链表的头插),首先创建个哨兵节点!正需遍历链表时,头节点不为空时,每次保存next引用 ,并把当前节点next指向哨兵节点的next,再把哨兵节点的next指向当前节点,最后再把头节点指向保存的next进行下次遍历!遍历结束取出哨兵节点的next返回即可

京公网安备 11010502036488号