zoukankan      html  css  js  c++  java
  • 华为笔试题05

    • 题目描述:

    输入一个不带头节点的单向链表(链表的节点数小于100),删除链表中内容重复的节点(重复的节点全部删除),剩余的节点逆序倒排。

    • 要求实现函数:

    void vChanProcess(strNode * pstrIn,strNode * pstrOut);

    【输入】 pstrIn:输入一个不带头节点的单向链表

    【输出】 pstrOut:删除内容重复的节点(重复的节点全部删除),剩余节点逆序输出(不带头节点,链表第一个节点的内存已经申请)。

    【注意】只需要完成该函数功能算法,中间不需要有任何IO的输入输出

    • 示例

    输入链表的内容依次为 6,7,8,8,9,10,6

    则输出链表的内容依次应该是 10,9

    关键部分代码为

        int len=20;
        int *a=new int [len];
        for(int i=0;i<len;++i)
        {
            a[i]=rand()%7;
            cout<<a[i]<<" ";
        }
        cout<<endl;
        set<int> sto;
        for(int i=0;i<len;++i)
        {
            int temp=a[i];
            for(int j=i+1;j<len;j++)
            {
                if(a[j]==temp)
                {
                    sto.insert(j);
                    sto.insert(i);
                }
            }
        }
        vector<int> out;
        int count=0;
        for(int i=0;i<len;++i)
        {
            set<int>::iterator iter;
            iter=find(sto.begin(),sto.end(),i);
            if(iter==sto.end())
            {
                out.push_back(a[i]);
                count++;
            }
        }
        for(vector<int>::iterator iter1=out.begin();iter1!=out.end();++iter1)
            cout<<*iter1<<" ";
        return 0;

      

  • 相关阅读:
    视差滚动(Parallax Scrolling)插件补充
    10个最佳的触控手式的JavaScript框架(转)
    50个必备的实用jQuery代码段(转)
    PhoneGap开发不可或缺的五件装备
    优化移动网站的9大窍门(转)
    WSADATA
    htons
    INADDR_ANY
    SOCKADDR_IN
    mysql_query()与mysql_real_query()
  • 原文地址:https://www.cnblogs.com/xd-jinjian/p/3277021.html
Copyright © 2011-2022 走看看