草庐IT

leetcode刷题日记:LCR 142. 训练计划 IV,876. 链表的中间结点

今天的两道题涉及到的知识点是双指针以及合并链表的一些技巧(我是使用的迭代法的,看了题解之后才搞明白,希望能给大家讲清楚)1.LCR142.训练计划IV题目描述:思路分析:这个链表很特殊,它的顺序是升序的,已经给你排好了,现在要求是合并之后再按照升序进行重新组装。一开始的时候我想直接先用给出的这两个链表来操作,先对一个链表进行循环,把另外一个链表中的节点的值与其比较,然后插到中间。但是这样的思路的问题在于最后我们是要返回一个链表的头结点的,但是我们在遍历的时候,会将头结点向后移,即使用另外一个变量来存储原来链表的头结点,指针在进行操作的时候还是会把这个新变量一同进行变化(昨天的文章里面谈到了这件

【力扣-876】链表的中间结点

🖊作者:Djx_hmbb📘专栏:数据结构😆今日分享:----------小Tips:虽然都是口服液体制剂,且看起来单支容量都一样,但是“藿香正气水”与“藿香正气口服液”的区别你知道吗?藿香正气水里含有40%-50%的乙醇,而藿香正气口服液不含有乙醇。同时藿香正气水不能和头孢一起服用(因为含有酒精),而藿香正气口服液可以和头孢一起服用。文章目录✔题目链接:✔题目:✔解题思路:遍历两次:先计算链表长短,再将指针移到该位置遍历一次:设计一个快指针(步长=2)和一个慢指针(步长=1)✔遍历两次-->代码详情:✔遍历一次-->代码详情:✔图解:家人们,点个![请添加图片描述](https://img-b

leetcode(力扣):203移除链表元素 leetcode(力扣):206反转链表 leetcode(力扣):876.链表的中间结点多种解法

目录203.移除链表元素解法一:将目标元素前一个元素存放地址改为下一元素地址解法二:遍历原链表,把不是val的节点拿出来进行尾插到新链表​编辑解法三:有哨兵位解法->头节点不存储有效数据​编辑206.反转链表方法一:创建新指针​编辑方法一:创建新指针进行反转​编辑方法二:将指针方向颠倒​编辑876.链表的中间结点203.移除链表元素解法一:将目标元素前一个元素存放地址改为下一元素地址structListNode*removeElements(structListNode*head,intval){ structListNode*prev=NULL; structListNode*cur=hea

876. 链表的中间结点

1.题目给定一个头结点为head的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。示例1:输入:[1,2,3,4,5]输出:此列表中的结点3(序列化形式:[3,4,5])返回的结点值为3。(测评系统对该结点序列化表述是[3,4,5])。注意,我们返回了一个ListNode类型的对象ans,这样:ans.val=3,ans.next.val=4,ans.next.next.val=5,以及ans.next.next.next=NULL.示例2:输入:[1,2,3,4,5,6]输出:此列表中的结点4(序列化形式:[4,5,6])由于该列表有两个中间结点,值分别为3和4,我