首页 > 其他分享 >删除有序链表中重复的元素-1

删除有序链表中重复的元素-1

时间:2024-03-21 20:24:48浏览次数:19  
标签:head cur 删除 to2 next 链表 有序 空时

描述
删除给出链表中的重复元素(链表中元素从小到大有序),使链表中的所有元素都只出现一次
例如:
给出的链表\(1\to 1\to2\),返回\(1\to2\)
给出的链表为\(1\to 1\to2\to3\to3\),返回\(1\to2\to3\)
数据范围:链表长度满足\(0 \le n \le100\),,链表中任意节点的值满足\(\mid val\mid \le 100\),
进阶:空间复杂度$o(1) \(,时间复杂度\)o(n) $

思路
当链表为空时,直接返回整个链表;当链表不为空时,使用cur指向头节点:
cur.next为空时,返回链表;若不为空时,判断cur的值是否与cur.next相同,如果相同,则令cur.next=cur.next.next,若不相同,cur=cur.next,指针后移。

代码

class Solution:
    def deleteDuplicates(self , head: ListNode) -> ListNode:
        # write code here
        if not head:
            return head
        cur = head
        while cur.next:
            if cur.val == cur.next.val:
                cur.next = cur.next.next
            else:
                cur = cur.next
        return head

标签:head,cur,删除,to2,next,链表,有序,空时
From: https://www.cnblogs.com/bonne-chance/p/18088167

相关文章

  • redis——集合,有序,慢查询, pipline与事务, bitmap ,HyperLogLog geo
    集合类型(set)saddkeyelement#向集合key添加element(如果element存在,添加失败)o(1)sremkeyelement#从集合中的element移除掉o(1)scardkey#计算集合大小sismemberkeyelement#判断element是否在集合中srandmemberkeycount#从集合中随机取出count个元素,不会破坏集......
  • 450. 删除二叉搜索树中的节点c
    /***Definitionforabinarytreenode.*structTreeNode{*intval;*structTreeNode*left;*structTreeNode*right;*};*/structTreeNode*leftleave(structTreeNode*root){if(root->left){root=root->left;......
  • 合并两个排序的链表
    合并两个排序的列表题目描述输入两个递增排序的链表,合并这两个链表并使新链表中的结点仍然是按照递增排序的。数据范围链表长度[0,500][0,500]。样例输入:1->3->5,2->4->5输出:1->2->3->4->5->5代码实现迭代版本structListNode{intval;ListNode*nex......
  • 物理删除 与 逻辑删除
    dishService.remove(queryWrapper);//根据条件删除 dishService.removeById(1);//根据id删除一个 dishService.removeById(dish); //根据id删除一个,传入实体对象!实体对象必须有id值!!! dishService.removeByIds(idList);//根据id集合......
  • leedcode- 回文链表
    毫无创意的一版:#定义一个类SolutionclassSolution:#定义一个方法isPalindrome,用于检查链表是否为回文defisPalindrome(self,head:Optional[ListNode])->bool:#如果链表为空,则它是一个回文ifnothead:returnTrue......
  • vue2/3 - element表格组件el-table实现懒加载树型(上下级)数据、默认展开和隐藏层级,支
    效果图在vue2、vue3项目开发中,使用element饿了么组件库,实现Table表格组件动态懒加载表格数据,可以决定是否自动展开所有2级或3级,也可以点击加载下级数据,可搭配表格的增删改查,数据变化后自动更新列表不会破坏树状的展开和折叠结构。提供详细示例代码,一键复制运行查看效果,稍......
  • java 差异删除 差异更新与删除
    publicbooleanrelation(LongprojectId,List<BsMemberEntity>members){ //1)、获取原关联数据 List<ProProjectAuthorEntity>oldList=this.findByProjectId(projectId); List<Long>oldMemberIds=oldList.stream().map(item->{ returnitem......
  • 线性DP——伴随插入、删除操作
    编辑距离题目描述设\(A\)和\(B\)是两个字符串。我们要用最少的字符操作次数,将字符串\(A\)转换为字符串\(B\)。这里所说的字符操作共有三种:删除一个字符;插入一个字符;将一个字符改为另一个字符。\(A,B\)均只包含小写字母。输入格式第一行为字符串\(A\);第二行为......
  • Java递归删除文件夹
    importjava.io.File;importjava.util.Scanner;publicclassDemo{publicstaticvoidmain(String[]args){FiledirFile=getDirFile();delDirFiles(dirFile);}/***递归删除文件夹里所有文件*/privatestaticvoi......
  • Spring boot2.7整合jetcache方法缓存 处理数据发生变化时同步更新缓存 删除缓存操作
    上文Springboot2.7整合jetcache方法缓存我们做了个方法缓存的案例可以将接口内容缓存起来是能大大提高效率的但是我们接口的数据大多来自数据库如果我们调用增删查改它的数据变化了那缓存的内容就会因为没有及时更新变的不准确例如我们这样我们在上面定义了......