首页 > 其他分享 >LeetCode 876

LeetCode 876

时间:2024-09-20 22:52:36浏览次数:3  
标签:head slow 876 fast next 链表 null LeetCode

题目LeetCode 876


解法一:快慢指针

注意while循环条件,以链表(1,2,3,4,null)为例:

  • 当条件为fast != null && fast.next != null时,若链表元素为偶数个,则返回中间的后一个节点(3)
  • 当条件为fast.next != null && fast.next.next != null时,若链表元素为偶数个,则返回中间的前一个节点(2)

若链表元素为奇数个,则都返回中间节点

    public ListNode middleNode(ListNode head) {
        ListNode slow = head, fast = head;
        while (fast != null && fast.next != null) {
            slow = slow.next;
            fast = fast.next.next;
        }
        return slow;
    }

标签:head,slow,876,fast,next,链表,null,LeetCode
From: https://blog.csdn.net/yang_brother/article/details/142371862

相关文章

  • [leetcode刷题]面试经典150题之5多数元素元素(简单)【附Boyer-Moore 投票算法(摩尔投票法
    很有意思的一个题,想了半天没想出来,最后发现两行代码就做出来了。写完后学习到还可以用Boyer-Moore投票算法,能减小空间复杂度,我把它写在后面,可以进一步学习。题目  多数元素给定一个大小为 n 的数组 nums ,返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊......
  • 【LeetCode Hot 100】11. 盛最多水的容器
    题目描述首先记录一下题目的解法。使用双指针记录容器的边界,从边界最大的容器开始,i位于最左侧,j位于最右侧。每次向中间移动高度较小的那个指针,并使用一个变量res记录容器最大的容积(即最终的答案)。//C++classSolution{public:intmaxArea(vector<int>&height){......
  • leetcode关于a++>等运算符优先级知识点辨析
    我偶然发现巧用++a>i可以大大缩减版面,方便检查。但对于相关优先级的知识点,我却有点模糊,所以对这个知识点进行辨析。1++a>i;a先加1,再与i比较2a++>i;a先与i比较再加13i<a++;a先比较再加14i<++a;a先加1再比较5--a>ia先减1再比较6a-->ia先比较再减17i<a--先......
  • Leetcode:交替合并字符串
    问题陈述1768.交替合并字符串给定两个字符串,word1和word2,任务是通过交替字符来合并它们。该过程从word1开始,一直持续到一个字符串用完为止。较长字符串中的任何剩余字符都将附加到合并字符串的末尾。我的思考过程考虑到问题的简单性,我立即认识到两指针方法是最合适的......
  • Leetcode #允许一个函数调用
    给定一个函数fn,返回一个与原始函数相同的新函数,除了它确保fn最多被调用一次。第一次调用返回的函数时,它应该返回与fn相同的结果。随后每次调用它时,它都应该返回未定义。示例1:输入:fn=(a,b,c)=>(a+b+c),调用=[[1,2,3],[2,3,6]]输出:**explanation:**登录后复制const......
  • leetcode刷题day22|回溯算法Part01( 77. 组合 、216. 组合总和 III、17.电话号码的字母
    前言:回溯是递归的副产品,只要有递归就会有回溯,回溯函数也就是递归函数。回溯是暴力穷举解法,效率并不高。但一些问题只能使用回溯来解决。回溯法,一般可以解决如下几种问题:组合问题:N个数里面按一定规则找出k个数的集合切割问题:一个字符串按一定规则有几种切割方式子集问题:一......
  • leetcode刷题day23|回溯算法Part02(39. 组合总和 、40.组合总和II、131.分割回文串)
    39.组合总和思路:这个题与77.组合的差异在于元素可以无限制重复被选取,那么只需要更改startIndex即可,每一层递归都可以从头选用元素。回溯三部曲与77.组合基本一致。代码如下:classSolution{List<List<Integer>>result=newArrayList<>();List<Integer>pa......
  • leetcode刷题day24|回溯算法Part03(93.复原IP地址、78.子集、90.子集II)
    93.复原IP地址思路:这个题和131.分割回文串一样都是对字符串进行分割,只不过这个子字符串判断时是看是不是0-225之间的数字。回溯三部曲:1、递归函数参数:全局变量:String数组result存放结果集。递归函数参数:原字符串;startIndex,因为切割过的地方不能重复切割,和组合问题是一样......
  • 闯关leetcode——58. Length of Last Word
    大纲题目地址内容解题代码地址题目地址https://leetcode.com/problems/length-of-last-word/description/内容Givenastringsconsistingofwordsandspaces,returnthelengthofthelastwordinthestring.Awordisamaximalsubstringconsisting......
  • 每日一题:Leetcode-347 前K个高频元素
    力扣题目解题思路java代码力扣题目:给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。示例1:输入:nums=[1,1,1,2,2,3],k=2输出:[1,2]示例2:输入:nums=[1],k=1输出:[1]提示:1<=nu......