题目
题号:15
题目名:反转链表
编程语言
Java
题目描述
输入一个链表,反转链表后,输出新链表的表头。
初次思路
将最后一个位置定下来,将前面的值逐个插入到最后这个位置的后面
比如 12345->2345 1->345 2 1->45 3 2 1-> 5 4 3 2 1
解题代码
public class Solution {
public ListNode ReverseList(ListNode head) {
//思路,将前面的结点插到后面来完成翻转
//非空校验
if(head==null||head.next==null) return head;
ListNode last = head;
ListNode curr = head;
//找到最后一个结点
while(last.next!=null) {
last= last.next;
}
while (curr!=last) {
curr =curr.next;
head.next = last.next;
last.next =head;
head = curr;
}
return last;
}
}