输出该单链表的中间结点的值,如果链表长度为偶数,则输出中间靠右的结点
题目要求:
输入数据创建一个单链表,实现一种算法。输出该单链表的中间结点的值,如果链表长度为偶数,则输出「中间靠右」的结点。如果链表只有一个元素,则输出唯一的元素。
算法思路:
- 创建一个单链表
- 设置两个指针,一个快指针fast,一个慢指针slow;
- 当快指针所指向的数据以及它所指向的下一个数据为空时,慢指针指向中间元素。
#include <iostream>
#define LIST_INIT_SIZE 100
#define Elemtype int
#define NULL 0
typedef struct LNode
{
Elemtype data;
struct LNode* next;
}LNode, * LinkList;
//创建一个单链表
LNode* CreatLinklist(void) {
LinkList head = (LNode*)malloc(sizeof(LNode));//定义头结点
head->data =