链表
liuyang-neu
这个作者很懒,什么都没留下…
展开
-
力扣 中等 445.两数相加 II
首先反转两个链表,再调用 2. 两数相加链接的代码,得到链表,最后将其翻转即可。// l1 和 l2 反转后,就变成【2. 两数相加】了// 翻转链表while (cur!cur = nxt;return pre;// 哨兵节点// 进位while (l1!= 0) { // 有一个不是空节点,或者还有进位,就继续迭代if (l1!// 节点值和进位加在一起if (l2!// 节点值和进位加在一起// 每个节点保存一个数位。原创 2024-09-26 11:37:46 · 351 阅读 · 0 评论 -
力扣 中等 24.两两交换链表中的节点
利用25题K个一组反转链表链接,将k改为2即可。// 同 25题 K个一组反转链表// 统计节点个数int n = 0;cur!= null;n++;// 2 个一组处理for (;n >= 2;cur = nxt;p0 = nxt;原创 2024-09-26 11:35:52 · 213 阅读 · 0 评论 -
力扣 简单 876.链表的中间结点
int n = 0;while (cur!i < n / 2;i++) {法二:快慢指针break;原创 2024-09-26 11:33:13 · 230 阅读 · 0 评论 -
力扣 困难 25.K个一组反转链表
先把链表的长度求出来,翻转前先判断剩余链表节点的个数,如果大于等于k则翻转,否则直接退出循环返回,每一个小组的翻转和上一题一样。参考b站灵茶山艾府// 统计节点个数int n = 0;cur!= null;n++;// k 个一组处理for (;n >= k;i++) { // 同 92 题pre = cur;cur = nxt;p0 = nxt;推荐博客文章力扣反转链表系列【25. K 个一组翻转链表】——由易到难,一次刷通!!!原创 2024-09-25 21:32:12 · 652 阅读 · 0 评论 -
力扣 中等 92.反转链表 II
/ 创建一个哑节点,它的 next 指向头节点,方便处理// p0 用于指向反转部分的前一个节点// 移动 p0 到反转部分的前一个节点i++) {// 执行反转i++) {pre = cur;cur = next;// 反转完之后,cur 指向需要反转部分的下一个节点// pre指向需要反转部分的最后一个节点// 此时 p0.next 还和原来一样,指向未反转时需要反转的第一个节点// 返回哑节点的下一个节点,即头节点。原创 2024-09-24 21:15:37 · 476 阅读 · 0 评论 -
力扣 简单 206.反转链表
法一:双指针在遍历链表时,将当前节点的 next 改为指向前一个节点。由于节点没有引用其前一个节点,因此必须事先存储其前一个节点。在更改引用之前,还需要存储后一个节点。最后返回新的头引用。while (cur!cur = nxt;return pre;法二:递归/*** int val;* }*/原创 2024-09-24 20:39:49 · 459 阅读 · 0 评论