本文共 543 字,大约阅读时间需要 1 分钟。
注意,两个单链表有公共结点意味着,只要有一个公共结点,那么后继的所有结点都是完全一样的。因此,两个单链表相当于“Y”的形状。由于两个链表长度不一定相等,所以算出长度差d之后,用较长的单链表遍历到第d个位置,然后两个表开始一起遍历,直到两个指针所指元素是同一个,也就是第一个公共结点,后面的所有结点都是公共结点。
LinkList pub_node(LinkList L, LinkList Q){ int L_len=0,Q_len=0; LNode *p=L->next,*q=Q->next; while(p!=NULL){ //L的长度 p=p->next;L_len++; } while(q!=NULL){ //Q的长度 q=q->next;Q_len++; } //长度差值 if(L_len>Q_len){ while(L_len-Q_len--) p=p->next; }else if(L_lennext; } while(p!=q){ p=p->next;q=q->next; } return p;}
转载地址:http://vpaoz.baihongyu.com/