首页 > 其他分享 >#yyds干货盘点# LeetCode面试题:分隔链表

#yyds干货盘点# LeetCode面试题:分隔链表

时间:2023-04-24 23:32:17浏览次数:32  
标签:yyds 面试题 ListNode large head next 链表 small

1.简述:

给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。

你应当 保留 两个分区中每个节点的初始相对位置。

 

示例 1:

输入:head = [1,4,3,2,5,2], x = 3

输出:[1,2,2,4,3,5]

示例 2:

输入:head = [2,1], x = 2

输出:[1,2]

2.代码实现:

class Solution {
    public ListNode partition(ListNode head, int x) {
        ListNode small = new ListNode(0);
        ListNode smallHead = small;
        ListNode large = new ListNode(0);
        ListNode largeHead = large;
        while (head != null) {
            if (head.val < x) {
                small.next = head;
                small = small.next;
            } else {
                large.next = head;
                large = large.next;
            }
            head = head.next;
        }
        large.next = null;
        small.next = largeHead.next;
        return smallHead.next;
    }
}

标签:yyds,面试题,ListNode,large,head,next,链表,small
From: https://blog.51cto.com/u_15488507/6222015

相关文章

  • [Leetcode]返回链表开始入环的第一个节点
    力扣链接思路一:快慢指针法一个指针从相遇点走,一个指针从起始点走,会在入口点相遇.最终代码:/***Definitionforsingly-linkedlist.*structListNode{*intval;*structListNode*next;*};*/structListNode*detectCycle(structListNode*head){......
  • python-高频面试题
    面试题汇总1.生成器使用了yield关键字的函数称为生成器,生成器是一个自定义的迭代器。函数中有yield关键字时,函数名加()不会执行函数体代码,而是会生成一个生成器。生成器内只有__iter__和__next__方法。生成器对比return可以返回多次值,可以挂起保存函数的运行状态,而遇到return就......
  • # yyds干货盘点 #老师好,请教下pycharm 里面怎么安装 openyxl?
    大家好,我是皮皮。一、前言前几天在Python钻石交流群【不争】问了一个Python库安装的基础问题,这里拿出来给大家分享下。下图是他的报错截图:二、实现过程这个问题其实不太难,不仔细看的话,还真看不出来啥问题,这里【狂吃山楂片】指出,库名字写的不对,应该是openpyxl,粉丝自己写的是openyxl,......
  • Redis高频面试题 - 2 一般有用 看1
     1、Redis持久化机制Redis是一个支持持久化的内存数据库,通过持久化机制把内存中的数据同步到硬盘文件来保证数据持久化。当Redis重启后通过把硬盘文件重新加载到内存,就能达到恢复数据的目的。实现:单独创建fork()一个子进程,将当前父进程的数据库数据复制到子进程的内存......
  • 快慢指针判断链表中是否存在循环
    给链表设置快慢两个指针,每次移动时,快指针的速度是慢指针的一倍。即每次快指针移动两次,慢指针移动一次。如果存在循环,快指针跑两圈就可以追上慢指针。 为什么不让慢指针停在原地等呢?因为循环有可能出现在中间位置。如此一来,循环过的位置就不必从头再循环。 整个过程的所有......
  • 常见云计算面试题及答案解析
    关注我了解更多云计算技术知识,带你一路“狂飙”到底!上岸大厂不是梦!受政策持续加码及技术突破的双重利好,我国云计算产业进入发展机遇期,云计算人才也成为企业高薪聘用的对象。很多有志学子看好云计算的未来前景,通过参加培训班快速掌握技术,那么学习效果怎么样呢?下面分享常见的云计......
  • [Leetcode]找出链表公共结点
    力扣链接思路:先求出两个链表的长度差长链表先走差距步同时走,第一个地址相同的是交点代码:/***Definitionforsingly-linkedlist.*structListNode{*intval;*structListNode*next;*};*/structListNode*getIntersectionNode(structListNode*he......
  • #yyds干货盘点#reduce和map的优雅写法
    reduce1、可以使用reduce方法来实现对象数组中根据某一key值求和例如,假设有以下对象数组:constarr=[{name:'apple',price:2},{name:'banana',price:3},{name:'orange',price:4},];复制代码如果要根据price属性求和,可以使用以下代码:constsum=arr.r......
  • 面试题 02
    力扣刷题面试题02.07.链表相交--day4题目分析这道题相对简单,注意找到指针相等的节点。先要预处理这两个链表,使其长度一样解法ListNode*getIntersectionNode(ListNode*headA,ListNode*headB){intsize1=0,size2=0;ListNode*temp=headA;while......
  • 19删除链表的倒数第N个节点
    力扣刷题19.删除链表的倒数第N个节点--day4题目分析这道题目比较简单,熟练掌握单链表中删除节点的操作解法ListNode*removeNthFromEnd(ListNode*head,intn){ListNode*dummyHead=newListNode();dummyHead->next=head;ListNode*p=head;int......