不计算单链表长度,找到链表中间位置元素并输出(假设链表中元素个数为奇数)。
#include <iostream>
using namespace std;
struct Node
{
int number;
Node *next;
};
Node *createList();
Node *findmid(Node *head);
void output(Node *head);
int main()
{
Node *head = NULL;
head = createList();
Node *mid = findmid(head);
if (mid)
cout << mid->number;
return 0;
}
Node *createList()
{
Node *head = NULL;
int x;
cin >> x;
while (x != -1)
{
Node *p = new Node;
p->number = x;
p->next = head;
head = p;
cin >> x;
}
return head;
}
Node *findmid(Node *head)
{
if (head == NULL || head->next == NULL)
return head;
Node *s = head, *t = head;
while (t->next)
{
s = s->next;
t = t->next;
if (t->next)
t = t->next;
}
return s;
}