ChatGPT刷力扣面试题02.01 移除重复节点(烧脑)

0 235

题目描述

编写代码,移除未排序链表中的重复节点。保留最开始出现的节点。

示例1:

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

 输入:[1, 1, 1, 1, 2]
 输出:[1, 2]
提示:

链表长度在[0, 20000]范围内。
链表元素在[0, 20000]范围内。
进阶:

如果不得使用临时缓冲区,该怎么解决?

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/remove-duplicate-node-lcci
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

开始解题(php)

ChatGPT刷力扣面试题02.01 移除重复节点(烧脑)
if ($head == null) {
            return $head;
        }
        
        $cur = $head;
        while ($cur != null) {
            $prev = $cur;
            $nextNode = $cur->next;
            while ($nextNode != null) {
                if ($nextNode->val == $cur->val) {
                    $prev->next = $nextNode->next;
                } else {
                    $prev = $nextNode;
                }
                $nextNode = $nextNode->next;
            }
            $cur = $cur->next;
        }
        
        return $head;
ChatGPT刷力扣面试题02.01 移除重复节点(烧脑)

关于链表(赋值指向的是同一个链表对象)

ChatGPT刷力扣面试题02.01 移除重复节点(烧脑)

逐步验算

示例1(输入:[1, 2, 3, 1] 输出:[1, 2,3])

第1次外循环,第1次内循环

ChatGPT刷力扣面试题02.01 移除重复节点(烧脑)

第1次外循环,第2次内循环

ChatGPT刷力扣面试题02.01 移除重复节点(烧脑)

第1次外循环,第3次内循环(把第1个节点重复的第4个节点从原来的链表删除)

ChatGPT刷力扣面试题02.01 移除重复节点(烧脑)

第2次外循环

ChatGPT刷力扣面试题02.01 移除重复节点(烧脑)

第3次外循环

ChatGPT刷力扣面试题02.01 移除重复节点(烧脑)

示例2( 输入:[1, 2, 3, 3, 2, 1] ,输出:[1, 2, 3])

第1次外循环

ChatGPT刷力扣面试题02.01 移除重复节点(烧脑)
ChatGPT刷力扣面试题02.01 移除重复节点(烧脑)
ChatGPT刷力扣面试题02.01 移除重复节点(烧脑)
ChatGPT刷力扣面试题02.01 移除重复节点(烧脑)

第6个节点的值和第1个节点的相同,则把第5个节点和第7个空节点链接(等同于把第6个节点删除了)

第2次外循环

ChatGPT刷力扣面试题02.01 移除重复节点(烧脑)
ChatGPT刷力扣面试题02.01 移除重复节点(烧脑)

第3次外循环

ChatGPT刷力扣面试题02.01 移除重复节点(烧脑)
ChatGPT刷力扣面试题02.01 移除重复节点(烧脑)

实际应用

这个函数的实际应用是用于删除链表中重复的节点,使得链表中每个节点的值都不相同。该函数可以用于解决一些问题,例如:

  1. 删除排序链表中的重复元素:如果一个链表是有序的,并且有重复元素,可以使用该函数来删除重复元素,保留每个元素的一个实例。
  2. 删除未排序链表中的重复元素:即使链表是无序的,也可以使用该函数来删除链表中的重复元素,只需遍历链表并记录出现过的元素,当遇到重复元素时删除即可。
  3. 检测链表中是否存在重复元素:使用该函数可以遍历链表并检测是否存在重复元素,如果链表中存在重复元素,则返回删除重复元素后的链表头节点。

这个函数可以帮助解决一些链表相关的问题,提高代码的简洁性和效率。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章资源,如无特殊说明或标注,均为本站网友和创作者贡献分享。如若本站内容侵犯了原著者的合法权益,可联系网站客服QQ2743319061删除。

云炬星球 云炬随笔 ChatGPT刷力扣面试题02.01 移除重复节点(烧脑) https://src.yunjunet.cn/1627198.html

常见问题
  • 放心亲,我们不会为了几十块钱的东西坏了名声!
查看详情
  • 方法一:点击“立即下载.”按钮,付款后在下载弹窗的虚线框的隐藏信息里获取 方法二:在正文底部使用VIP查看隐藏的解压密码 方法三:联系【云炬网络】公众号客服获取
查看详情
  • 付款后会出现“立即下载”按钮(点击即可下载),如果下载失败也可以联系客服发订单截图补发。
查看详情
  • 登录购买会多端同步购买记录,永久可以查看反复下载;非登录购买仅将购买记录保存到本地浏览器中,浏览器cookie清除后无法再次下载。先右上角点登录,然后点击微信图标可以快速授权注册登录^_^
查看详情
  • 可以试看。点击”查看演示“或“试看预览”按钮可以试读从资料目录中节选的部分内容,也可以自己指定想试看的内容。
查看详情
  • 原因一:本站所有资源已开启有效性检测(服务器24h全自动监测),当监测到下载链接无法访问时会提示“该资源已失效,请勿购买”,遇到这种情况可以联系客服修复失效的下载链接,或直接联系客服在淘宝下单购买即可。(检测原理:购买前服务器程序会预访问下载链接,响应值为200说明资源有效允许购买,响应值为404或502等报错说明资源失效禁止购买)。原因二:上传者未启用“下载”选项。
查看详情
官方客服团队

为您解决烦忧 - 24小时在线 专业服务