0
点赞
收藏
分享

微信扫一扫

LeetCode.206 反转链表

夹胡碰 2023-01-14 阅读 130

1.题目:

给你单链表的头节点 ​head​ ,请你反转链表,并返回反转后的链表

输入:head = [1,2,3,4,5]
输出:[5,4,3,2,1]

 *     int val;
* ListNode next;
* ListNode() {}
* ListNode(int val) { this.val = val; }
* ListNode(int val, ListNode next) { this.val = val; this.next = next; }
* }
*/
class Solution {
public ListNode reverseList(ListNode head) {
ListNode pre = null;//定义一个pre指针指向头结点的前一个null,因为反转之后这里就是头结点就是尾结点,指向null
ListNode cur = head;//定义一个指针cur指向头结点

while(cur!=null){//循环条件是当cur指针指向null,pre指向尾结点时就停止
ListNode temp = cur.next;//定义一个临时指针先储存cur下一个结点,防止指针反转之后找不到,注意临时指针是会随着cur的变化而变化的,不能定义在循环外面
cur.next = pre;//先反转指针
pre = cur;//移动pre指针
cur = temp;//移动cur指针

}
return pre;

}
}

2.代码实现


3.图解:

LeetCode.206 反转链表_链表






举报

相关推荐

0 条评论