啧啧啧 合并两个单链表 不占用新内存

阅读: 评论:0

啧啧啧 合并两个单链表 不占用新内存

啧啧啧 合并两个单链表 不占用新内存

将链表La和Lb合并为Lc,
条件: 不给Lc分配新内存(即调整Lc的指针指向两链表符合条件的节点);

主要算法


List *T_O(LNode La,LNode Lb,LNode Lc){
/*判断两链表是否存在一处拜访完,一处有几个村没拜访的情况,如果有就判断是哪几个村,并挨家挨户拜访*/if(La==NULL||Lb==NULL){if(La==NULL&&Lb!=NULL){Lc=Lb;Lc->next=T_O(La,Lb->next,Lc->next);}else if(Lb==NULL&&La!=NULL){Lc=La;Lc->next=T_O(La->next,Lb,Lc->next);}else{ return Lc;}return Lc;}/*if(La==NULL){Lc=Lb;return;}else if(Lb==NULL){Lc=La;return;}*/LNode pa=La;LNode pb=Lb;//这里也可以不用重新任命对象完成任务,可直接御驾亲征if(pa->data<=pb->data){Lc=(LNode)malloc(sizeof(List));Lc=pa;//使Lc指向搜刮的那一个村Lc->next=T_O(La->next,Lb,Lc->next);//抢完一个换下一个}else{Lc=(LNode)malloc(sizeof(List));Lc=pb;Lc->next=T_O(La,Lb->next,Lc->next);}return Lc;
}

主要代码

#include <stdio.h>
#include <stdlib.h>
typedef struct node{struct node *next;int data;
}*LNode,List;List *InitList(LNode L,int a[],int n){L=(LNode)malloc(sizeof(List));//printf("a值为%dn",a[n]);//printf("n为%dn",n);if(n<=3){L->data=a[n];//printf(&

本文发布于:2024-01-31 11:52:16,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170667313928325.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:不占用   链表   内存   两个
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23