题目描述:给你一个单链表,返回反转后的链表
思路和数据结构上课时候教的一样
头插法,
下面是主要逻辑的讲解
m=head.next; //把头部用一个 变量 保存起来,因为下面会给head的next赋值
head.next=pre; // 因为要反转,head就会变成尾部,那么head的next就是pre(也就是赋值为null的一个变量值)
pre=head; //之后pre会继续作为@1的next值,所以把pre赋值为head
head = m; // 此时head向单链表的后边移动,@1成为了当前的head;继续进入循环;

java代码如下
/*
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}*/
public class Solution {
public ListNode ReverseList(ListNode head) {
ListNode pre=null;
ListNode m=null;
while(head!=null){
m=head.next;
head.next=pre;
pre=head;
head = m;
}
return pre;
}
}
博客围绕单链表反转展开,题目是返回反转后的单链表。采用头插法,讲解了主要逻辑,如保存头部、反转指针、移动指针等,最后给出了Java代码实现。
411

被折叠的 条评论
为什么被折叠?



