| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 765 人关注过本帖
标题:一个带头结点的单链表拆分成两个带头结点的单链表L1和L2
只看楼主 加入收藏
编程小猪
Rank: 1
等 级:新手上路
帖 子:33
专家分:4
注 册:2022-10-17
结帖率:100%
收藏
 问题点数:0 回复次数:1 
一个带头结点的单链表拆分成两个带头结点的单链表L1和L2
题目:有一个带头结点的单链表L=(a1,b1,a2,b2,....an,bn),设计一个算法将其拆分成两个带头结点的单链表L1和L2,其中L1=(a1,a2,...an),L2=(bn,bn-1,...b1),要求L1使用L的头结点。(PS:题目上的数字和n、n-1指下标)
程序代码:
void split(LinkNode *&L,LinkNode *&L1,LinkNode *&L2)
{    LinkNode * p=L->next,* q,* r1;
     L1=L;            
     r1=L1;            //r1始终指向L1的尾结点
     L2=(LinkNode *)malloc(sizeof(LinkNode);
     L2->next=NULL;
     while(p!=NULL)
     {    r1->next=p;
          r1=p;
          p=p->next;
          q=p->next;
          p->next=L2->next;
          L2->next=p;
          p=q;
     }
     r1->next=NULL;
}

这是我画的草图,我就是不知道r1指向L1的尾结点,L1的尾结点是L的NULL,还是说L1后面也指向一个NULL,r1指向L1后面的NULL?
总而言之,就是L1的尾结点在哪?请各位大佬赐教,感谢!
图片附件: 游客没有浏览图片的权限,请 登录注册


[此贴子已经被作者于2023-3-6 14:34编辑过]

搜索更多相关主题的帖子: 结点 单链表 NULL next 指向 
2023-03-06 14:32
编程小猪
Rank: 1
等 级:新手上路
帖 子:33
专家分:4
注 册:2022-10-17
收藏
得分:0 
41分钟后,我自己悟了,人r1开始和L1的位置一样,然后随着插入数据,r1就跟着走,始终在最后一个结点。

专升本备考中!!!
2023-03-06 15:15
快速回复:一个带头结点的单链表拆分成两个带头结点的单链表L1和L2
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017158 second(s), 11 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved