链表的中间结点
时间限制: 1S类别: DS:数组与链表->链表–简单

晚于: 2022-03-17 23:55:00后提交分数乘系数50%

截止日期: 2022-03-20 23:55:00

问题描述 :

给定一个无头结点的非空单链表,头指针为 head,请返回链表的中间结点的值。

如果有两个中间结点,则返回第二个中间结点。

示例 1:

输入:[1,2,3,4,5]

输出:3

示例 2:

输入:[1,2,3,4,5,6]

输出: 4

由于该列表有两个中间结点,值分别为 3 和 4,我们返回第二个结点。

可使用以下代码,完成其中的middleNode函数,其中形参head指向单链表,返回中间结点的值。

#include

using namespace std;

struct ListNode

{

int val;ListNode *next;ListNode() : val(0), next(NULL) {}ListNode(int x) : val(x), next(NULL) {}ListNode(int x, ListNode *next) : val(x), next(next) {}

};

class Solution {

public:

int middleNode(ListNode* head) {//填充本函数完成功能  }

};

ListNode *createByTail()

{

ListNode *head;ListNode *p1,*p2;int n=0,num;int len;cin>>len;head=NULL;while(n<len && cin>>num){p1=new ListNode(num);n=n+1;if(n==1)head=p1;elsep2->next=p1;p2=p1;}return head;

}

int main()

{

ListNode* head = createByTail();int result=Solution().middleNode(head);cout<<result<<endl;return 0;

}

输入说明 :

首先输入链表长度len,然后输入len个整数,以空格分隔。

len的范围为 1到100。

输出说明 :

输出一个整数,表示中间结点的值。

输入范例 :

6
1 2 3 4 5 6

输出范例 :

4

#include <iostream>
#include <cstring>
#include <iomanip>
#include <algorithm>
#include <cmath>
#include <sstream>
#include <vector>
#include <cstdio>
#define endl '\n'
using namespace std;
int ok = 0;
struct ListNode
{int val;ListNode* next;ListNode() : val(0), next(NULL) {}ListNode(int x) : val(x), next(NULL) {}ListNode(int x, ListNode* next) : val(x), next(next) {}
};
class Solution {public:int middleNode(ListNode* head) {if (ok % 2 == 0){int len = (ok / 2 );ListNode* p = head;int pl = 0;for (pl = 0; pl < len; pl++){p = p->next;}return p->val;}else{int len = (ok + 1)/2;ListNode* p = head;int pl = 0;for (pl = 1; pl < len; pl++){p = p->next;}return p->val;}}
};
ListNode* createByTail()
{ListNode* head;ListNode* p1, * p2=NULL;int n = 0, num;int len;cin >> len;ok = len;head = NULL;while (n<len && cin >> num){p1 = new ListNode(num);n = n + 1;if (n == 1)head = p1;elsep2->next = p1;p2 = p1;}return head;
}
int main()
{ListNode* head = createByTail();int result = Solution().middleNode(head);cout << result << endl;return 0;
}

dhu 1.2 链表的中间结点相关推荐

  1. LeetCode 876——链表的中间结点

    1. 题目 给定一个带有头结点 head 的非空单链表,返回链表的中间结点. 如果有两个中间结点,则返回第二个中间结点. 示例 1: 输入:[1,2,3,4,5] 输出:此列表中的结点 3 (序列化形 ...

  2. Leetcode 876. 链表的中间结点 (每日一题 20210918)

    给定一个头结点为 head 的非空单链表,返回链表的中间结点.如果有两个中间结点,则返回第二个中间结点.示例 1:输入:[1,2,3,4,5] 输出:此列表中的结点 3 (序列化形式:[3,4,5]) ...

  3. 876. 链表的中间结点(C语言)

    **给定一个头结点为 head 的非空单链表,返回链表的中间结点. 如果有两个中间结点,则返回第二个中间结点. 示例 1: 输入:[1,2,3,4,5] 输出:此列表中的结点 3 (序列化形式:[3, ...

  4. 七十一、去重交换排序链表、 求链表的中间结点

    @Author:Runsen 编程的本质来源于算法,而算法的本质来源于数学,编程只不过将数学题进行代码化. ---- Runsen 最近在重新梳理学算法的知识,本文为链表常见操作复习的总结文章,会讲解 ...

  5. LeetCode Algorithm 876. 链表的中间结点

    876. 链表的中间结点 Ideas 这题直接秒杀吧,快慢指针,快指针一次走两步,慢指针一次走一步,快指针到头之后慢指针正好到链表中间. Code C++ class Solution {public ...

  6. leetcode-876. 链表的中间结点解法

    给定一个带有头结点 head 的非空单链表,返回链表的中间结点. 如果有两个中间结点,则返回第二个中间结点. 示例 1: 输入:[1,2,3,4,5] 输出:此列表中的结点 3 (序列化形式:[3,4 ...

  7. 876. 链表的中间结点

    给定一个头结点为 head 的非空单链表,返回链表的中间结点. 如果有两个中间结点,则返回第二个中间结点 代码一: 自己想的一个方法 class Solution {public ListNode m ...

  8. 链表题目--2 求链表的中间结点 和 求链表中倒数第k个结点

    求链表的中间结点 思路 一个走两步,一个走一步.一个走到尾,另外一个就走到了中间 /*** Definition for singly-linked list.* struct ListNode {* ...

  9. LeetCode 876. 链表的中间结点(快慢指针)

    1. 题目 给定一个带有头结点 head 的非空单链表,返回链表的中间结点. 如果有两个中间结点,则返回第二个中间结点. 2. 解题 快慢指针法 class Solution {public:List ...

最新文章

  1. 用Eclipse的snippets功能实现代码重用
  2. java 自定义对话框_Java经典实例:用户自定义对话框
  3. 时间被空间和运动度量
  4. PAT 1041. 考试座位号(15)
  5. 手机号、姓名、邮箱等合法性验证方法
  6. spring securiy使用总结
  7. C#毕业设计——基于C#+asp.net+sqlserver的网上书店系统设计与实现(毕业论文+程序源码)——网上书店系统
  8. 智慧管廊可视化管理系统搭建
  9. 2021年南京市高考成绩查询,2021年南京高考各高中成绩及本科升学率数据排名及分析...
  10. 关于CAN网络管理状态
  11. 个人网站怎么建设,个人网站建设流程
  12. 小米怎么快速回到顶部_实在没想到,小米有6种截屏方法!以前只知道3种,实在太吃亏了...
  13. android studio 添加 ignored files 忽略文件
  14. php总结与展望_2020 年的 PHP 回顾与展望
  15. xftp7要继续使用此程序,您必须应用最新的更新,100%已解决.
  16. 基于Mysql的智慧医疗管理系统
  17. 【Web网站服务器开发】apache和tomcat 阿帕奇和汤姆猫
  18. Django框架(五)--ORM操作
  19. Java人脸识别登录Demo(人脸考勤系统)
  20. springBoot Aop打印日志

热门文章

  1. 年薪不到 25.2 万免费学,廖雪峰的大数据高级开发课程第5期开始招生
  2. 不吃早餐/自噬效应/断食
  3. 2021年3月1日 星期一 冬月八九 阴
  4. Memory芯片的应用攻略
  5. 建站百科|「联系我们」页面设计指南(内附案例)
  6. 个人主页增添新留言板
  7. 为什么书呆子不受欢迎? 《黑客与画家》
  8. 西部矿业(601168):整合湖北铅锌资源
  9. 亚马逊宣布与大自然保护协会合作,投资巴西基于自然的碳移除解决方案
  10. 网站如何快速突破排名瓶颈