Leetcode

  • Leetcode -61.旋转链表
  • Leetcode -82.删除排序链表中的重复元素Ⅱ

Leetcode -61.旋转链表

题目:给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置。

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

示例 2:
输入:head = [0, 1, 2], k = 4
输出:[2, 0, 1]

我们的思路是,每旋转一次,就把尾节点变成头节点,原来尾节点的上一个更新为新的尾节点;

     struct ListNode* rotateRight(struct ListNode* head, int k){if (head == NULL){return NULL;}struct ListNode* curr = head;//使curr走到链表的尾节点,并计算链表长度int len = 1;while (curr->next){curr = curr->next;len++;}//k取len的余数,防止重复旋转k %= len;//循环迭代while (k--){//prev每次从头节点开始找尾节点的前一个节点struct ListNode* prev = head;while (prev->next != curr){prev = prev->next;}//找到后把当前curr尾节点的next接到头节点//prev更新为新的尾节点,再赋给curr//更新新的头节点curr->next = head;prev->next = NULL;head = curr;curr = prev;}return head;}

Leetcode -82.删除排序链表中的重复元素Ⅱ

给定一个已排序的链表的头 head ,删除原始链表中所有重复数字的节点,只留下不同的数字 。
返回已排序的链表 。

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

示例 2:
输入:head = [1, 1, 1, 2, 3]
输出:[2, 3]

我们的思路是,给定一个哨兵位,每次判断这个哨兵位的后两个节点的val是否相等,若相等则记录下它的val为flag,让cur一直往后走,直到cur的val不等于flag;若不相等cur往后迭代;

     struct ListNode* deleteDuplicates(struct ListNode* head){//哨兵位struct ListNode* dummyHead = malloc(sizeof(struct ListNode));dummyHead->next = head;//cur从哨兵位开始struct ListNode* cur = dummyHead;//比较cur后面的两个是否相等,//若相等则记录下它的val为flag,让cur一直往后走,直到cur的val不等于flag//若不相等,cur往后迭代while (cur->next && cur->next->next){if (cur->next->val == cur->next->next->val){int flag = cur->next->val;while (cur->next && cur->next->val == flag){cur->next = cur->next->next;}}else{cur = cur->next;}}//head更新为哨兵位的next,因为原来的头也可能会被删head = dummyHead->next;free(dummyHead);dummyHead = NULL;return head;}

【Leetcode -61.旋转链表 -82.删除排序链表中的重复元素Ⅱ】相关推荐

  1. LeetCode 25K 个一组翻转链表26删除排序数组中的重复项

    如果问题或者其他方法还请分享,如加入打卡微信搜索bigsai回复进群一起打卡. K个一组翻转链表 题目要求 给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表. k 是一个正整数,它的值小 ...

  2. LeetCode 79单词搜索80删除排序数组中的重复项Ⅱ81.搜索旋转排序数组Ⅱ

    新人公众号(求支持):bigsai 专注于Java.数据结构与算法,一起进大厂不迷路! 算法文章题解全部收录在github仓库bigsai-algorithm,求star! 关注回复进群即可加入力扣打 ...

  3. leetcode 26. 删除排序数组中的重复元素

    题目 给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下 ...

  4. Leetcode 129求根节点到叶节点数字之和、104二叉树的最大深度、8字符串转换整数(atoi)、82删除排序链表中的重复元素II、204二分查找、94二叉树的中序遍历、144二叉树的前序遍历

    Top1:Leetcode 129求根节点到叶节点数字之和 官方题解:https://leetcode.cn/problems/sum-root-to-leaf-numbers/solution/qi ...

  5. leetcode初级算法1.删除排序数组中的重复项

    leecode初级算法1.删除排序数组中的重复项 仅为个人刷题记录,不提供解题思路 题解与收获 class Solution {public int removeDuplicates(int[] nu ...

  6. [LeetCode][Python][C#]刷题记录 26. 删除排序数组中的重复项

    这道题我真的纠结好久,因为没注意那个原地的题目要求,所以很奇怪怎么我电脑运行成功,但是LeetCode上运行就是不对.气哭. 感谢群友lino的帮助.他试了set方法不行,直接喂给我的答案了... 题 ...

  7. c++两个数组对比去掉重复的元素_每日一道 LeetCode (8):删除排序数组中的重复项和移除元素...

    ❝ 每天 3 分钟,走上算法的逆袭之路. ❞ 前文合集 每日一道 LeetCode 前文合集 代码仓库 GitHub:https://github.com/meteor1993/LeetCode Gi ...

  8. C++描述 LeetCode 26. 删除排序数组中的重复项

    C++描述 LeetCode 26. 删除排序数组中的重复项   大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博主目前仅在CSDN中写博客 ...

  9. LeetCode题组:第26题-删除排序数组中的重复项

    1.题目:删除排序数组中的重复项 给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度.(注意这里提到了排序数组,也就是说数组是有序的.如果无序,我们又 ...

最新文章

  1. 一家两位Fellow大满贯!北大谢涛当选ACM Fellow,与胞兄谢源完成会师
  2. 推荐一款功能强大的Tomcat 管理监控工具,可替代Tomcat Manager
  3. C---蝉、蜻蜓、蜘蛛
  4. 大圣魔方——美团点评酒旅BI报表工具平台开发实践
  5. presto .vs impala .vs HAWQ query engine
  6. 笨办法学 Python · 续 练习 17:字典
  7. maven详解scope
  8. oracle的文件管理ofm,oracle 文件管理功能
  9. (一)LINGO入门---软件安装
  10. 论基于架构的软件设计方法及应用
  11. 读书笔记(13)STP
  12. 深度学习中处理类别不平衡问题主流方法总结
  13. 点击父组件按钮 显示子组件_按钮设计用户界面组件系列
  14. java后端工程师面试题(笔试):2022-11-04 经历(一)
  15. 软件的生命周期及模型
  16. 欧洲核子研究中心公布强子对撞机事故初步分析
  17. php-pfm并发,php-pfm配置详解
  18. UglifyJS和Uglifycss使用
  19. 洛谷p1618 三连击(升级版)(python)
  20. startssl免费证书申请

热门文章

  1. Google Analytics cookie内容详解 Read more: http://bluewhale.cc/2010-01-24/google-analytics-cookie.html#
  2. Elasticsearch:分析器中的 character filter 介绍
  3. 弘辽科技:淘宝开店有哪些引流渠道?
  4. 回首2022,展望2023(年度总结)
  5. 安然如一曲悠扬而又静谧的音乐
  6. 想用声音变现,但是声音不好听怎么办
  7. 程序员的第一款表情包,你值得拥有
  8. Linux 通过代码 获取某个目录的磁盘空间占用情况
  9. Unity接入ChartAndGraph图表插件
  10. 微信小程序开发问题汇总 1