【数据结构】-单链表-将一个单链表奇偶位置节点原地拆分成两个单链表
程序员文章站
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);
}