哪个做图网站可以挣钱,淘宝做网站的多少钱,wordpress页面调试分类文章,长沙企业建站招聘信息#x1f4da;博客主页#xff1a;爱敲代码的小杨.
✨专栏#xff1a;《Java SE语法》 | 《数据结构与算法》 | 《C生万物》
❤️感谢大家点赞#x1f44d;#x1f3fb;收藏⭐评论✍#x1f3fb;#xff0c;您的三连就是我持续更新的动力❤️
#x1f64f;小杨水平有…
博客主页爱敲代码的小杨.
✨专栏《Java SE语法》 | 《数据结构与算法》 | 《C生万物》
❤️感谢大家点赞收藏⭐评论✍您的三连就是我持续更新的动力❤️
小杨水平有限欢迎各位大佬指点相互学习进步 文章目录 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置为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;}
}运行结果