给定一个带有头结点 head 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。
程序员文章站
2022-07-10 20:15:24
...
#include <stdio.h>
#include <stdlib.h>
#include<assert.h>
typedef int sdatatype;
typedef struct slistnode//单链表节点
{
sdatatype _data;
struct slistnode *pnext;
}node, *pnode;
typedef struct slist//给一个头指针保存第一个节点的地址
{
pnode _phead;
}slist, *pslist;
pnode middlelist(slist *s) {
//初值设为1和0,刚好返回要求的结点,不用分类判断
int count1 = 1;//计数所有结点数
int count = 0;//用来比较是否到达中间结点
pnode p1 = s->_phead;
pnode p2 = s->_phead;
while (p1->pnext != NULL) {
p1 = p1->pnext;
count1++;
}
count1 = count1 / 2;
while (count != count1) {
p2 = p2->pnext;
count++;
}
return p2;
}
推荐阅读
-
给定一个带有头结点 head 的非空单链表,返回链表的中间结点。 如果有两个中间结点,则返回第二个中间结点。
-
给定一个带有头结点 head 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点(Java实现)
-
给定一个带有头结点 head 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点
-
Leetcode题库:给定一个带有头结点 head 的非空单链表,返回链表的中间结点,如果有两个中间节点则返回第二个
-
常见单链表题型(三) 给定一个带有头结点 head 的非空单链表,返回链表的中间结点;如果有两个中间结点,则返回第二个中间结点
-
给定一个带有头结点 head 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。
-
给定一个带有头结点 head 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点
-
Java:给定一个带有头结点 head 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点
-
给定一个头结点为 head 的非空单链表,返回链表的中间结点,如果有两个中间结点,则返回第二个中间结点。
-
【Java】数据结构——(OJ题)给定一个带有头结点 head 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点