1个回答

test
2024-07-01
#include <stdio.h>
#include <stdlib.h>
typedef struct Node {
int data;
struct Node* next;
} Node;
Node* createNode(int data) {
Node* newNode = (Node*)malloc(sizeof(Node));
if(newNode == NULL) {
printf("Error creating a new node.\n");
exit(0);
}
newNode->data = data;
newNode->next = NULL;
return newNode;
}
Node* sliceLinkedList(Node* head, int start, int end) {
Node* current = head;
Node* startNode = NULL;
Node* endNode = NULL;
// 找到开始和结束节点
while(current != NULL) {
if(current->data == start) {
startNode = current;
}
if(current->data == end) {
endNode = current;
break;
}
current = current->next;
}
if(startNode != NULL && endNode != NULL) {
endNode->next = NULL;
return startNode;
}
return NULL;
}
int main() {
Node* head = createNode(1);
head->next = createNode(2);
head->next->next = createNode(3);
head->next->next->next = createNode(4);
head->next->next->next->next = createNode(5);
head->next->next->next->next->next = createNode(6);
Node* sliced = sliceLinkedList(head, 2, 5);
Node* current = sliced;
while(current != NULL) {
printf("%d ", current->data);
current = current->next;
}
return 0;
}
回复

适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容