欢迎光临散文网 会员登陆 & 注册

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

2023-07-16 11:56 作者:MicroShuai  | 我要投稿


1.使用curr.next = curr.next.next,跳过节点的方法;

1️⃣ 如果当前元素和下一个元素相同

2️⃣ 那么直接跳过下一个元素

3️⃣ 让当前元素指向下下个元素

处理边界问题  : 当curr.next = null 的时候 跳出循环,遇到最后两个相同的元素,

curr.next = curr.next.next 相当于 curr.next = curr.next.null (curr.next = curr.next->null )

对于curr = curr.next    和  curr .next = curr.next.next 的 区别

1️⃣ curr = curr.next 是让当前元素引用 变成 下一个元素的引用,也就是指针向前走

2️⃣  curr .next = curr.next.next 是让 当前元素 的 next 保存 下下个元素的地址,

        相当于 当前元素 指向 下下一个元素(跳过下一个元素)

  • curr = curr.next 是将当前节点指针移动到下一个节点。

  • curr.next = curr.next.next 是删除当前节点的下一个节点。




2快慢指针解法

定义一快指针,定义一个慢指针,判断慢指针和快指针 的val ,相等则快指针向前走

否则  慢指针 向前走一步,然后快指针附值给慢指针

总结:第一种方法更好,不用开辟新的变量


删除有序链表中重复的元素的评论 (共 条)

分享到微博请遵守国家法律