求t1与t2的并集,接下来怎么编码

img

(1)创建递增排列的单链表A、B;
(2)输出单链表A、B;
(3)实现A、B链表的并集C并输出。

供参考:

void MergeList(LNode*& La, LNode*& Lb, LNode*& Lc)
{                        //升序链表La和Lb并集得升序链表LC,最终 La  Lc 都指向得到并集链表。
    LNode* pa, * pb, * pc, * pt;
    pa = La->next;
    pb = Lb->next;
    La->next = NULL;
    Lc = pc = La;
    while (pa && pb)
    {
        if (pa->data < pb->data)
        {
            pc->next = pa;
            pc = pa;
            pa = pa->next;
        }
        else if (pa->data > pb->data) {
            pc->next = pb;
            pc = pb;
            pb = pb->next;
        }
        else {
            pc->next = pa;
            pc = pa;
            pa = pa->next;
            pt = pb;
            pb = pb->next;
            free(pt);
        }
    }
    pc->next = pa ? pa : pb;
    free(Lb);
    Lb = NULL;
}

  • 这篇博客: 字节跳动客户端二轮面试(附带答案版~~~)中的 t3. 可以有多继承嘛?如果有一个类C继承了类A和类B,A和B内有一个相同的变量a,那如何去区分呢?访问的是哪一个呢,能允许这种方式嘛? 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
    1. C++ 支持多继承,即一个派生类可以有两个或多个基类。语法如下:

      class C: public A, public B{
          //类C新增加的成员
      }
      
    2. 在派生类中对基类成员的访问应该是唯一的。但是,在多继承情况下,可能造成对基类中某个成员的访问出现了不唯一的情况,这时就称对基类成员的访问产生了二义性,也称作命名冲突。

      解决方法是,通过作用域运算符(::)明确指出访问的是基类 A 的变量 a,还是基类 B 的变量 a。可以在使用时候指明 A::a 还是 B::a,也可以直接在类中用该运算符直接定义同名成员。


    .