Leetcode题库:给定一个带有头结点 head 的非空单链表,返回链表的中间结点,如果有两个中间节点则返回第二个
程序员文章站
2022-07-10 20:22:14
...
要求:给定一个带有头结点 head 的非空单链表,返回链表的中间结点
测试案例:1-2-3-4-5
输出结果:3
测试案例:1-2-3-4-5-6
输出结果:4
public Node middleNode() {
if (this.head == null) {
return null;
}
//快慢指针:定义两根指针,移动的速度一快一慢,以此来制造出自己想要的差值。这个差值可以让我们找到链表上相应的节点。
Node fast = this.head;
Node slow = this.head;
while (fast != null && fast.next != null) {
//fast!=null适用于偶数长度的链表,fast.next!=null使用于奇数长度的链表
// 如果fast.next为空,那么fast.next.next则会出现指针异常。所以限定条件时fast和fast.next都不能为空
fast = fast.next.next;
slow = slow.next;
}
return slow;
}
上一篇: 阶段七模块二 RabbitMQ
下一篇: 【python模块】OS模块
推荐阅读
-
给定一个带有头结点 head 的非空单链表,返回链表的中间结点。 如果有两个中间结点,则返回第二个中间结点。
-
给定一个带有头结点 head 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点(Java实现)
-
给定一个带有头结点 head 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点
-
Leetcode题库:给定一个带有头结点 head 的非空单链表,返回链表的中间结点,如果有两个中间节点则返回第二个
-
常见单链表题型(三) 给定一个带有头结点 head 的非空单链表,返回链表的中间结点;如果有两个中间结点,则返回第二个中间结点
-
给定一个带有头结点 head 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。
-
给定一个带有头结点 head 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点
-
Java:给定一个带有头结点 head 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点
-
给定一个头结点为 head 的非空单链表,返回链表的中间结点,如果有两个中间结点,则返回第二个中间结点。
-
【Java】数据结构——(OJ题)给定一个带有头结点 head 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点