招商局网站建设方案,高清做爰片免费观看网站,aws服务器搭建wordpress,手机无法登录wordpress给定一个带有头结点 head 的非空单链表#xff0c;返回链表的中间结点。
如果有两个中间结点#xff0c;则返回第二个中间结点。 示例 1#xff1a;
输入#xff1a;[1,2,3,4,5] 输出#xff1a;此列表中的结点 3 (序列化形式#xff1a;[3,4,5]) 返回的结点值为 3 。 …
给定一个带有头结点 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 之间。
思路快慢指针快指针两步慢指针一步。
/*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode(int x) { val x; }* }*/
class Solution {public ListNode middleNode(ListNode head) {if(headnull || head.nextnull) {return head;}ListNode low head;ListNode fast head.next;while(fast!null fast.next!null) {low low.next;fast fast.next.next;}//根据快指针是否为空判断边界条件if(fast!null) {return low.next;}return low;}
}