在我的代码中,有 2 个列表。我想将它们分开:偶数和奇数。
我写了一些东西。但是,它没有打印出我想要的内容。我要做什么?
if((list->data) % 2 == 1){
oddList = list;
list = list->nextPtr;
oddList->nextPtr = NULL;
printList(oddList);
} else {
evenList = list;
list = list->nextPtr;
evenList->nextPtr = NULL;
}
list = list->nextPtr;
结果是:
list1 : 4 17 17 19 21 28 31
list2 : 5 5 10 14 19 31 34 35
oddList : 5 17 19 31 31
evenlist :
但是oddList
必须是:5 5 17 17 19 19 21 31 31 35
最佳答案
您正在推进 list
两次
if ((list->data) % 2 == 1) {
oddList = list;
list = list->nextPtr; // first advance
oddList->nextPtr = NULL;
printList(oddList);
} else {
evenList = list;
list = list->nextPtr; // first advance
evenList->nextPtr = NULL;
}
list = list->nextPtr; // second advance
}
关于c - 如何将链表拆分为2个列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23733159/