做购物网站公司,极简简历官网,seo推广具体做什么,码制作二维码官网个人主页#xff1a;白日依山璟
专栏#xff1a;Java|数据结构与算法|每日一题 文章目录 1. 题目描述示例1示例2示例3提示 2. 思路3.代码 1. 题目描述
给你单链表的头节点 head #xff0c;请你反转链表#xff0c;并返回反转后的链表。
示例1 输入#xff1a;head [1…个人主页白日依山璟
专栏Java|数据结构与算法|每日一题 文章目录 1. 题目描述示例1示例2示例3提示 2. 思路3.代码 1. 题目描述
给你单链表的头节点 head 请你反转链表并返回反转后的链表。
示例1 输入head [1,2,3,4,5] 输出[5,4,3,2,1] 示例2 输入head [1,2] 输出[2,1] 示例3 输入head [ ] 输出[ ] 提示
链表中节点的数目范围是[0,500]-5000 Node.val 5000
题目链接
2. 思路 判断链表是否为空如果为空直接返回头结点 判断链表是否为一个元素如果是直接返回头结点 将head的next置为null 定义两个指针cur和curNextcur 指向头结点的next表示要反转的元素curNext指向cur的next表示要反转元素的下一个元素 使用头插法将要反转的元素插入前一个元素的前面
3.代码
/*** Definition for singly-linked list.* public class ListNode {* 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) {if (head null) { // 链表里一个元素都没有return head;}if (head.next null) { // 链表里只有一个元素return head;}ListNode cur head.next; // 要反转的元素head.next null;while (cur ! null) {ListNode curNext cur.next;// 头插法cur.next head;head cur;cur curNext;}return head;}
}运行结果 世界上有三种k梅花k方片k还有任何人不关注我我都会难过的ok