题意:
有一个整数元素建立的单链表A,设计一个算法,将其拆分成两个链表A 和B,使得链表A中含有所有偶数的结点,B链表中含有所有的奇数结点。且保持原来的相对次序。
单链表的存储结构:
typedef struct LinkList{
int data;
LinkList * next;
}
分析:
这里采用新建链表的方法,而题意要求保持相对次序,所以这里采用尾插法建立单链表。
这里可以用原来的单链表A的头结点作为新链表的头结点。所有不用再生成一个新头结点。
思路:
1.定义一个遍历单链表A的指针p,两个尾指针 ra,rb,要生成一个头结点。
2.将尾指针赋值好。头结点也是。
3.通过while循环,条件为p != null ,在循环中,判断是否为偶数,如果是偶数,将该数插入链表A中,再后移,如果是奇数,则插入链表B中,再后移。
4.最后两个链表的最后一个节点都置为空。
C代码实现:

博客围绕将整数元素单链表A拆分为含偶数结点的链表A和含奇数结点的链表B展开。采用新建链表、尾插法,用原链表A头结点作为新链表头结点。给出思路,定义指针,通过循环判断奇偶插入对应链表,最后置尾节点为空,并提及用C代码实现。
最低0.47元/天 解锁文章
2701

被折叠的 条评论
为什么被折叠?



