/*
* @lc app=leetcode.cn id=83 lang=c
*
* [83] 删除排序链表中的重复元素
*
* https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list/description/
*
* algorithms
* Easy (44.24%)
* Total Accepted: 18.4K
* Total Submissions: 41.5K
* Testcase Example: '[1,1,2]'
*
* 给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。
*
* 示例 1:
*
* 输入: 1->1->2
* 输出: 1->2
*
*
* 示例 2:
*
* 输入: 1->1->2->3->3
* 输出: 1->2->3
*
*/
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
struct ListNode* deleteDuplicates(struct ListNode* head) {
struct ListNode *p,*q; if(head==NULL){
return NULL;
}else if(head!=NULL&&head->next==NULL){
return head;
}else
{
p = head;
q = head->next;
} while(p!=NULL){
while(q!=NULL){
if(q->val==p->val){
p->next = q->next;
q->next = NULL;
q = p->next;
continue;
}
q=q->next;
}
p = p->next;
if(p!=NULL&&p->next!=NULL){
q = p->next;
}else
{
q = p;
}
}
return head;
}

自己写的,思路简单,但是写的有点复杂了。

主要思路就是 设置两个结点指针,然后一个节点从头开始,另一个节点在它之后依次移动,找到相等的值就删去这个节点。

有些地方复杂了就是多了点处理,首先开始判断传进来的链表,空的话返回空,只有头的话就返回头。

然后在循环过程中发现,比如 1 1 这种情况,所以在循环最后加了判断,如果移动到末尾的情况。

-----------------------------------------------------------------------------------------------------------------------------------------------------------------

python:

#
# @lc app=leetcode.cn id=83 lang=python3
#
# [83] 删除排序链表中的重复元素
#
# https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list/description/
#
# algorithms
# Easy (44.24%)
# Total Accepted: 18.4K
# Total Submissions: 41.5K
# Testcase Example: '[1,1,2]'
#
# 给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。
#
# 示例 1:
#
# 输入: 1->1->2
# 输出: 1->2
#
#
# 示例 2:
#
# 输入: 1->1->2->3->3
# 输出: 1->2->3
#
#
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None class Solution:
def deleteDuplicates(self, head: ListNode) -> ListNode:
if not head:
return head
p = head
q = head.next
while q!=None:
if q.val!=p.val:
p = q
q = q.next
else:
p.next = q.next
q = q.next
return head

Leecode刷题之旅-C语言/python-83删除排序链表中的重复元素的更多相关文章

  1. [LC]83题 Remove Duplicates from Sorted List(删除排序链表中的重复元素)(链表)

    ①英文题目 Given a sorted linked list, delete all duplicates such that each element appear only once. Exa ...

  2. leetcode刷题-83删除排序链表中的重复元素

    题目 给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次. 示例 1: 输入: 1->1->2 输出: 1->2 实现 # Definition for singly-li ...

  3. 【python】Leetcode每日一题-删除排序链表中的重复元素

    [python]Leetcode每日一题-删除排序链表中的重复元素 [题目描述] 存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除所有重复的元素,使每个元素 只出现一次 . 返回同 ...

  4. 【python】Leetcode每日一题-删除排序链表中的重复元素2

    [python]Leetcode每日一题-删除排序链表中的重复元素2 [题目描述] 存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除链表中所有存在数字重复情况的节点,只保留原始链表 ...

  5. leetcode刷题-82.删除排序链表中的重复元素 II

    题目 给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字. 示例 1: 输入: 1->2->3->3->4->4->5输出: 1- ...

  6. 【leetcode 简单】第十九题 删除排序链表中的重复元素

    给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次. 示例 1: 输入: 1->1->2 输出: 1->2 示例 2: 输入: 1->1->2->3-&g ...

  7. 第82题:删除排序链表中的重复元素II

    一. 问题描述 给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字. 示例 1: 输入: 1->2->3->3->4->4->5 ...

  8. 力扣 ——Remove Duplicates from Sorted List II(删除排序链表中的重复元素 II)python实现

    题目描述: 中文: 给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字. 示例 1: 输入: 1->2->3->3->4->4-> ...

  9. 力扣—Remove Duplicates from Sorted List(删除排序链表中的重复元素)python实现

    题目描述: 中文: 给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次. 示例 1: 输入: 1->1->2输出: 1->2 示例 2: 输入: 1->1->2 ...

随机推荐

  1. spring----对IoC和DI的理解

      学习过Spring框架的人一定都会听过Spring的IoC(控制反转) .DI(依赖注入)这两个概念,对于初学Spring的人来说,总觉得IoC .DI这两个概念是模糊不清的,是很难理解的,今天和 ...

  2. Linux文件寻址算法:逻辑地址到物理地址的转换

    题目描述: 编写一个函数实现Linux文件寻址的算法,即读取文件当前位置到物理存储位置的转换函数,需要给出运行的测试数据,可以假设和模拟需要的数据和结构.即编写一个函数unsigned long lt ...

  3. IEEP-网络实施-项目交付流程

    1.项目交付流程 1.1 定义 项目交付流程规定了对项目实施的管理和作业控制要求,保证了工程项目实施按照规定的程序进行 1.2 重要性 1.2.1提高客户满意度 1.2.2 提高工程效率,节约成本 1 ...

  4. expdp指定时间戳导出防止数据不一致

    expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp FLASHBACK_TIME=“TO_TIMESTAMP(’25-08-2004 14:35:00’,’ ...

  5. 欢迎来到“火龙族智者”的blog

    本blog里有每天更新的比赛感想,新技术体会以及日语学习相关事宜. 主要研究方向是算法,信息安全以及日语. 希望各位能常来看看.

  6. linux服务基础之CentOS6编译安装mariadb

    1. 下载mariadb https://downloads.mariadb.org/mariadb/+releases/ 2. 解压到指定目录 # tar xf mariadb--linux-x86 ...

  7. T-SQL 基础 2

    运行结果: while 循环 运行结果: 运行结果 : if 判断语句 计算 1到100的基数 运行结果 1到100的偶数 运行结果 局部变量前缀是 @ 全局变量(包括系统变量) 前缀是 @@

  8. 【luogu P1962 斐波那契数列】 题解

    题目链接:https://www.luogu.org/problemnew/show/P1962 给你篇dalao的blog自己看吧,把矩阵快速幂的板子一改就OK #include <algor ...

  9. HDU 2199 Can you solve this equation?(二分解方程)

    传送门: http://acm.hdu.edu.cn/showproblem.php?pid=2199 Can you solve this equation? Time Limit: 2000/10 ...

  10. triplet loss

    因为待遇低,因为工作不开心,已经严重影响了自己的工作积极性和工作效率,这几天发觉这样对自己实在是一种损失,决定提高工作效率,减少工作时间. 说说最近做的tracking, multi-object t ...