删除链表中的重复元素

转载 2016年08月29日 17:04:22

昨晚在参加兰亭集势的笔试时,看到了这样一个题目。大致意思就是给出一个单链表,链表中有重复的元素,需要删除重复的元素。如:1→2→3→5→4→3→7,删除重复元素后变成1→2→3→5→4→7。

思路其实还蛮简单:建立三个工作指针p,q,r,然后p遍历全表。p每到一个结点,q就从这个结点往后遍历,并与p的数值比较,相同的话就free掉那个结点。

LinkList RemoveDupNode(LinkList L)   //删除重复结点的算法
{
    LinkList p , q , r;
    p = L -> next;
    while(p)  //p用于遍历链表
    {
        q = p;
        while(q->next)  //q遍历p后面的结点,并与p数值比较
        {
            if(q->next->data == p->data)
            {
                r = q->next;         //r保存需要删掉的结点
                q->next = r->next;   //需要删掉的结点的前后结点相接
                free(r);
            }
            else
                q = q->next;
        }
        p = p->next;
    }
    return L;
}

【链表】删除链表中的重复元素

题目描述: 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5 ...
  • u012351768
  • u012351768
  • 2016年10月10日 10:34
  • 819

从链表中删除重复数据(三种方法)

思路一: 遍历链表,把遍历的值存储到一个Hashtable中,在遍历过程中,若当前访问的值在Hashtable中已经存在,则说明这个数据是重复的,因此就可以删除。 优点:时间复杂度较低O(n) ...
  • IFollowRivers
  • IFollowRivers
  • 2017年04月13日 19:52
  • 1853

删除单链表中的重复节点(删除多余项)

题目:如何删除单链表中的重复节点(即保证每个元素只出现一次,删除多余的,且后来出现的元素)。 一个没有排序的单链表,如 list = {a, 1, x, b, e, f, f, e, a, g, h...
  • cyuyanenen
  • cyuyanenen
  • 2016年06月20日 13:46
  • 9414

删除链表中重复元素

//删除链表中重复的元素 //比如1 2 3 3 4 4 //删除重复元素变为1 2 #include using namespace std; struct Node { Node(int ...
  • bladeandmaster88
  • bladeandmaster88
  • 2016年09月18日 09:39
  • 456

删除排序链表中的重复数字 II

题目描述:给定一个排序链表,删除所有重复的元素只留下原链表中没有重复的元素。 样例:给出 1->2->3->3->4->4->5->null,返回 1->2->5->null;给出 1->1->1-...
  • guoziqing506
  • guoziqing506
  • 2016年05月02日 22:29
  • 700

去除已排序链表中的重复元素

题目描述 给定一个已排序的单链表,去除单链表中的重复元素,只保留一个重复的元素,并且返回新的单链表。 例如: 给出1->1->2,你的函数调用之后必须返回1->2。 输入 一个已排序的单链表,例如1...
  • u014717036
  • u014717036
  • 2016年09月17日 17:50
  • 1086

数据结构实验之链表七:单链表中重复元素的删除

题目描述 按照数据输入的相反顺序(逆位序)建立一个单链表,并将单链表中重复的元素删除(值相同的元素只保留最后输入的一个)。 输入 第一行输入元素个数n;  第二行输入n个整数。 输出 第一...
  • a1265262132
  • a1265262132
  • 2016年08月06日 10:30
  • 348

【链表】C++删除链表中重复的结点

题目: 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5 注意要删除的是所...
  • yebanxin
  • yebanxin
  • 2016年07月16日 18:36
  • 1751

数据结构实验之链表七:单链表中重复元素的删除

数据结构实验之链表七:单链表中重复元素的删除 Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 按照数据输入的...
  • Godsight
  • Godsight
  • 2016年05月16日 22:13
  • 869

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

问题描述: https://oj.leetcode.com/problems/remove-duplicates-from-sorted-list/点击打开链接 删除有序链表中的重复元素。 G...
  • ych_ding
  • ych_ding
  • 2014年11月29日 19:57
  • 2981
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:删除链表中的重复元素
举报原因:
原因补充:

(最多只允许输入30个字)