函数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
输入样例2:
6
1 2 3 5 6 7