- 两个单向链表的合并:
创建
两个单向链表p1和p2,合并
p1和p2即可,代码如下:- 示例代码:
int merge_2_link_list(node_t *p1,node_t **p2){
if(NULL == p1 || NULL == p2 || NULL == *p2){
printf("入参合理性检查\n");
return -1;
}
node_t *ptemp = p1;
while(NULL != ptemp->next){
ptemp = ptemp->next;
}
ptemp->next = (*p2)->next;
free(*p2);
*p2 = NULL;
return 0;
}
- 操作步骤:
- 1.入参合理性检查;
- 2.找到
p1的最后一个
数据结点; - 3.让p2的指针域,即
p2的第一个结点的指针指向p1的最后一个结点的指针域
,即ptemp->next = (*p2)->next
; - 4.释放p2的头结点的地址,并赋值NULL,防止野指针产生;