Skip to content

Commit 9c55b90

Browse files
author
gongtao02
committed
876.ts 快慢指针,找到中间链表节点
1 parent da2ef4c commit 9c55b90

File tree

1 file changed

+78
-0
lines changed

1 file changed

+78
-0
lines changed

876.ts

+78
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
/*
2+
* @lc app=leetcode.cn id=876 lang=typescript
3+
*
4+
* [876] 链表的中间结点
5+
*
6+
* https://leetcode.cn/problems/middle-of-the-linked-list/description/
7+
*
8+
* algorithms
9+
* Easy (71.32%)
10+
* Likes: 1009
11+
* Dislikes: 0
12+
* Total Accepted: 473.2K
13+
* Total Submissions: 663.1K
14+
* Testcase Example: '[1,2,3,4,5]'
15+
*
16+
* 给你单链表的头结点 head ,请你找出并返回链表的中间结点。
17+
*
18+
* 如果有两个中间结点,则返回第二个中间结点。
19+
*
20+
*
21+
*
22+
* 示例 1:
23+
*
24+
*
25+
* 输入:head = [1,2,3,4,5]
26+
* 输出:[3,4,5]
27+
* 解释:链表只有一个中间结点,值为 3 。
28+
*
29+
*
30+
* 示例 2:
31+
*
32+
*
33+
* 输入:head = [1,2,3,4,5,6]
34+
* 输出:[4,5,6]
35+
* 解释:该链表有两个中间结点,值分别为 3 和 4 ,返回第二个结点。
36+
*
37+
*
38+
*
39+
*
40+
* 提示:
41+
*
42+
*
43+
* 链表的结点数范围是 [1, 100]
44+
* 1 <= Node.val <= 100
45+
*
46+
*
47+
*/
48+
49+
import { ListNode } from './labuladong/list'
50+
51+
// @lc code=start
52+
/**
53+
* Definition for singly-linked list.
54+
* class ListNode {
55+
* val: number
56+
* next: ListNode | null
57+
* constructor(val?: number, next?: ListNode | null) {
58+
* this.val = (val===undefined ? 0 : val)
59+
* this.next = (next===undefined ? null : next)
60+
* }
61+
* }
62+
*/
63+
64+
function middleNode(head: ListNode | null): ListNode | null {
65+
// 起手,虚拟节点
66+
let dummy1 = new ListNode(-1)
67+
dummy1.next = head
68+
let dummy2 = new ListNode(-2)
69+
dummy2.next = head
70+
71+
while (dummy2) {
72+
dummy2 = dummy2.next?.next
73+
dummy1 = dummy1.next
74+
}
75+
return dummy1
76+
};
77+
// @lc code=end
78+

0 commit comments

Comments
 (0)