题目描述
输入一个链表,反转链表后,输出新链表的表头。
示例1
输入
{1,2,3}
返回值
{3,2,1}
解题思路
该题最后的总结就是利用链表的本质,新增节点进行对节点进行记录和拼接即可。具体的注释在代码中给出
总结下来就是:初始一个头结点。遍历链表,把链表的当前节点插入到头结点的前边,并更新头结点。直至链表最后即可
*java代码实现 * 12ms 9820KB
/*
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 pre=null;
ListNode next=null;
while(head!=null){
//先记录当前节点的next节点
next=head.next;
//让当前节点的next为现在已有的反转的链表
head.next=pre;
//已有链表的头结点为当前节点
pre=head;
//当前节点右移
head=next;
}
return pre;
}
}
京公网安备 11010502036488号