欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【数据结构】-单链表-将一个单链表奇偶位置节点原地拆分成两个单链表

程序员文章站 2022-07-13 17:48:06
...

L=a1,b1,a2,b2,....an,bn

返回值:a1,a2,a3,.....an

原始单链表:b1,b2,b3..bn

【数据结构】-单链表-将一个单链表奇偶位置节点原地拆分成两个单链表

【数据结构】-单链表-将一个单链表奇偶位置节点原地拆分成两个单链表

 【数据结构】-单链表-将一个单链表奇偶位置节点原地拆分成两个单链表

 LinkList split(LinkList &L) {
	 //分成的两个单链表一个是返回值M,另一个在原始单链表L中
	 LNode *p = L->next;
	 LNode *q = p->next;
	 LinkList M = (LinkList)malloc(sizeof(LNode));
	 M->next = NULL;
	 if (p == NULL || q == NULL)return M;//当单链表为空或者只有一个节点时不需要分裂
	 M->next = q;
	 while (q)
	 {
		 p->next = q->next;
		 p = q;
		 q = q->next;
	 }
	 p->next = NULL;
	 return M;
 }

 int main() {
	 LinkList L = NULL;
	 L = List_TailInsert(L);
	 LinkList M=split(L);
	 List_Print(L);
	 List_Print(M);
 }

【数据结构】-单链表-将一个单链表奇偶位置节点原地拆分成两个单链表