数据结构将一个带头结点的单链表A分解为两个具有相同结构的链表B和C,其中B中结点:值大于等于0;C中结点:值小于0。(BC结点为原A中结点)的代码
时间: 2023-06-03 17:06:00 浏览: 80
解决办法如下:
```
/*链表结点*/
typedef struct ListNode {
int val; //数据域
struct ListNode* next; //指针域
} ListNode;
ListNode* separateList(ListNode* head) {
if (head == NULL || head->next == NULL) {
return head;
}
ListNode* cur = head->next;
//B链表头结点、尾结点
ListNode* bHead = (ListNode*)malloc(sizeof(ListNode));
bHead->val = 0;
bHead->next = NULL;
ListNode* bEnd = bHead;
//C链表头结点、尾结点
ListNode* cHead = (ListNode*)malloc(sizeof(ListNode));
cHead->val = 0;
cHead->next = NULL;
ListNode* cEnd = cHead;
while (cur != NULL) {
//插入到B链表
if (cur->val >= 0) {
bEnd->next = cur;
bEnd = cur;
}
//插入到C链表
else {
cEnd->next = cur;
cEnd = cur;
}
cur = cur->next;
}
//连接B、C链表
bEnd->next = cHead->next;
cEnd->next = NULL;
//释放C链表头结点
free(cHead);
return bHead->next;
}
```
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![ppt](https://img-home.csdnimg.cn/images/20210720083527.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)