题目描述
给你单链表的头结点 head
,请你找出并返回链表的中间结点。
如果有两个中间结点,则返回第二个中间结点。
示例:
示例 1:
输入:head = [1,2,3,4,5] 输出:[3,4,5] 解释:链表只有一个中间结点,值为 3 。
示例 2:
输入:head = [1,2,3,4,5,6] 输出:[4,5,6] 解释:该链表有两个中间结点,值分别为 3 和 4 ,返回第二个结点。
提示:
- 链表的结点数范围是
[1, 100]
1 <= Node.val <= 100
上代码,拿去即可运行:
package com.onlyqi.daydayupgo01.test;import java.util.Objects;public class Test18 {public static void main(String[] args) {ListNode head5 = new ListNode(5, null);ListNode head4 = new ListNode(4, head5);ListNode head3 = new ListNode(3, head4);ListNode head2 = new ListNode(2, head3);ListNode head1 = new ListNode(1, head2);System.out.println("==========only-qi=============:" + middleNode(head1).getNum());}public static ListNode middleNode(ListNode head) {ListNode fast = head, slow = head;while (fast != null) {slow = Objects.isNull(fast.getNetxt()) ? slow : slow.getNetxt();fast = Objects.isNull(fast.getNetxt()) ? null : fast.getNetxt().getNetxt();}return slow;}
}
我要刷300道算法题,第121道 。 好久好久没写算法了,最近开始写,先从最简单的开始。希望自己可以坚持下去