函数find_middle()实现了对给定的单链表,查找到其中间结点。如果中间结点为两个,返回前面的那个结点的地址。请完成该函数。 函数接口定义: Node* find_middle(Node* head); head是单链表的头指针,函数返回查找到的结点地址。 裁判测试程序样例: #include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct ListNode { int num; struct ListNode *next; }Node; Node *createlist(); /*裁判实现,细节不表*/ Node* find_middle(Node* head); void display(Node *head);/*裁判实现,细节不表*/ int main() { Node *head,*p; head = createlist(); p = find_middle(head); display(p); return 0; } /* 请在这里填写答案 */ 输入样例1: 5 1 3 7 9 10 输出样例1: 7
时间: 2024-03-20 14:38:53 浏览: 181
数据结构算法习题答案带头结点的循环链表表示队列,并且只设一个指针指向队尾元素结点(注意不设头指针).docx
5星 · 资源好评率100%
```
Node* find_middle(Node* head) {
Node *slow = head, *fast = head;
while (fast && fast->next) {
slow = slow->next;
fast = fast->next->next;
}
return slow;
}
```
阅读全文