LeetCode刷题 876链表的中间结点

news/2024/11/24 0:33:42/

876. 链表的中间结点

难度简单550收藏分享切换为英文接收动态反馈

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

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

示例 1:

输入:[1,2,3,4,5]
输出:此列表中的结点 3 (序列化形式:[3,4,5])
返回的结点值为 3 。 (测评系统对该结点序列化表述是 [3,4,5])。
注意,我们返回了一个 ListNode 类型的对象 ans,这样:
ans.val = 3, ans.next.val = 4, ans.next.next.val = 5, 以及 ans.next.next.next = NULL.

示例 2:

输入:[1,2,3,4,5,6]
输出:此列表中的结点 4 (序列化形式:[4,5,6])
由于该列表有两个中间结点,值分别为 3 和 4,我们返回第二个结点。

提示:

  • 给定链表的结点数介于 1 和 100 之间。

题解(遍历) 

 

  public ListNode middleNode(ListNode head) {int length=0;ListNode node=null;for (node=head;node!=null;node=node.next) {length++;}node=head;for (int i = 0; i < length / 2; i++) {node=node.next;}return node;}

题解(快慢指针) 

  •  定义一个fir为走的慢的指针,sec走的比较快的指针
  • 初始化 fir=0 sec=0
  • 每次fir后移一位 sec后移两位
  • 当sec==null时,fir刚好走到中间结点

JAVA实现代码

   //双指针之快慢指针解法public ListNode middleNode(ListNode head){if (head==null||head.next==null){return head;}ListNode fir=head;ListNode sec=head;while (sec!=null&&sec.next!=null){fir=fir.next;sec=sec.next.next;}return fir;}


http://www.ppmy.cn/news/537799.html

相关文章

力扣练题之876题:链表的中间结点

题目描述&#xff1a;876.链表的中间结点 给定一个头结点为 head 的非空单链表&#xff0c;返回链表的中间结点。 如果有两个中间结点&#xff0c;则返回第二个中间结点。 示例&#xff1a; 输入&#xff1a;[1,2,3,4,5] 输出&#xff1a;此列表中的结点 3 (序列化形式&…

876. 链表的中间结点

文章目录 题目描述做题思路代码实现题目链接 题目描述 给定一个头结点为 head 的非空单链表&#xff0c;返回链表的中间结点。 如果有两个中间结点&#xff0c;则返回第二个中间结点。 示例 1&#xff1a; 输入&#xff1a;[1,2,3,4,5] 输出&#xff1a;此列表中的结点 3 (序列…

LeetCode-876. 链表的中间结点 C语言

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

Leetcode876.链表的中间节点

876.链表的中间节点 给定一个头结点为 head 的非空单链表&#xff0c;返回链表的中间结点。 如果有两个中间结点&#xff0c;则返回第二个中间结点。 题目&#xff1a;876. 链表的中间结点 - 力扣&#xff08;LeetCode&#xff09; (leetcode-cn.com) 思路&#xff1a;利用快…

LC 876

ListNode* middleNode(ListNode* head) {int counter0;ListNode* lhead;ListNode* l1head;if(l->nextNULL) return l;while(l!NULL){ll->next;counter;}int midcounter/21;for(mid;mid>1;mid--){l1l1->next; }return l1;}

Codeforces Round 876 (Div. 2)

A.直接模拟即可 贪心放1的时候直接放i #include <iostream> #include <cstring> #include <algorithm> #include <vector> #include <set> #include <map> #include <cmath> #include<functional> using namespace std; con…

leetCode876

快慢指针法&#xff0c;学到了 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode(int x) : val(x), next(NULL) {}* };*/ class Solution { public:ListNode* middleNode(ListNode* head) {ListNode* fast hea…

Astro VG876图像信号发生器控制软件

using System; using System.Windows.Forms; namespace VG876控制软件 { public partial class Form_VG876 : Form { public Form_VG876() { InitializeComponent(); } private void Form_VG876_Load(object sender, EventArgs e…