数据结构与算法之两个有序链表的重复项

两个有序链表的重复

题目

在这里插入图片描述

想法

  1. 设两个链表分别为 a,b,新增链表为 mm 链表初始 data 值为 99991,令 a.datab.data 进行比较
    1. a.data==b.data,令 m.next=a;a=a.next;b=b.next;c=c.next.
    2. a.data>b.data,令 b=b.next.
    3. a.data<b.data,令 a=a.next.

代码

LNode *findSameNodeAndReturn(LinkedList l1, LinkedList l2) {  
    LinkedList merged = (LinkedList) malloc(sizeof(LNode));  
    merged->data = -999;  
    LNode *a = l1;  
    LNode *b = l2;  
    LNode *c = merged;  
    while (a && b) {  
        while (a->data == b->data) {  
            a = a->next;  
            b = b->next;  
            //拼接  
            if (c->data != a->data) {  
                LNode *temp = (LinkedList) malloc(sizeof(LNode));  
                temp->data = a->data;  
                c->next = temp;  
            }  
        }  
        while (a->data < b->data) {  
            a = a->next;  
        }  
        while (a->data > b->data) {  
            b = b->next;  
        }  
    }  
    return merged;  
}

  1. 即一个特别的数字 ↩︎

猜你喜欢

转载自blog.csdn.net/qq_45074341/article/details/126378638
今日推荐