《剑指offer》----反转链表
题目描述
输入一个链表,反转链表后,输出新链表的表头。
解题思路
考虑将给定链表头结点指向的结点(存储第一个值的结点)插入到新建链表的第一个结点(头插法)
①存放要操作结点的指向指针A,防止丢失链表后续结点。
②将要操作结点的指针指向新链表头结点指向的那一个结点
③将新链表头结点的指针指向操作结点
④将保存的指向指针A赋给给定链表的头指针
源码
/*
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}*/
public class Solution {
public ListNode ReverseList(ListNode head) {
if(head==null||head.next==null){
return head;
}
ListNode newHead=new ListNode(-1);
while(head!=null){
ListNode next=head.next;
head.next=newHead.next;
newHead.next=head;
head=next;
}
return newHead.next;
}
}