首页 > 其他分享 >链表 I

链表 I

时间:2023-02-28 23:11:18浏览次数:42  
标签:large ListNode next 链表 small pointer

目录

链表

应用

应用1:Leetocde.86

题目

86. 分隔链表

解题思路

在遍历过程中,将原有的链表分成两部分,使用两个 \(dumy\) 节点 \(large\)、\(small\) ,用于分别记录大于 \(x\) 的节点和小于 \(x\) 的节点,遍历完成之后,将大链表,连接到小链表的结尾即可。

代码实现

class Solution:
    def partition(self, head: Optional[ListNode], x: int) -> Optional[ListNode]:
        small = ListNode(0)
        large = ListNode(0)
        large_first = large
        small_first = small
        pointer = head
        while pointer:
            if pointer.val < x:
                small.next = pointer
                small = small.next
            else:
                large.next = pointer
                large = large.next
            pointer = pointer.next
        large.next = None
        small.next = large_first.next
        return small_first.next

标签:large,ListNode,next,链表,small,pointer
From: https://www.cnblogs.com/larry1024/p/17166441.html

相关文章

  • golang 实现链表爽不爽?
    犹记得刚学C语言的时候,学到指针这一章,就会有让我们写链表的需求,头插法,尾插法,翻转链表,合并链表,约瑟夫环等等学的不亦乐乎,但是对于指针刚学的时候,真是摸不着脑壳,不知道x......
  • 力扣中19 删除链表的倒数第N个节点
     就是双指针移动呢忽略了特殊情况的判断有可能是设置的标记倒数第n个节点的指针还没移动呢形如例子【1,2  n=2】或者链表很短都不存loc下下个元素会找不到溢出......
  • 链表双指针技巧
    题目难度要点分隔链表●快慢指针:不用两个新链表拼接,使用原地修改合并K个升序链表●最小堆:类ProirityQueue的使用环形链表●快慢指针:相遇有环......
  • Go组件库总结之介入式链表
    本篇文章我们用Go封装一个介入式的双向链表,目的是将链表的实现和具体元素解耦。文章参考自:https://github.com/brewlin/net-protocol1.元素的接口typeElementinterface......
  • 彻底搞懂React-hook链表构建原理
    写在前面的小结每一个hook函数都有对应的hook对象保存状态信息useContext是唯一一个不需要添加到hook链表的hook函数只有useEffect、useLayoutEffect以及us......
  • 力扣简876 链表的中间节点
    只要一个一步一步走另一个指针两步两步走然后快的走到终点慢的就是中点//只有两种情况一种中间节点有一个一种有两个分开讨论一下publicstaticListNodemiddleNo......
  • [数据结构] 单链表
    一、C语言实现1.1结构体定义typedefintElementType;//定义一个链表结构体structListNode{ElementTypeval;structListNode*next;};1.2相关方法......
  • lc21合并两个有序链表
    ​​21.合并两个有序链表​​难度简单2934收藏分享切换为英文接收动态反馈将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组......
  • pat乙级链表问题
    链表题目:一开始以为要按照链表那样一个一个搞,看完这个后思路清晰:1025链表一连a三题链表题。在输入完链表之后,遍历链表使用另一个数组(可以是指针数组也可以是节点数组)记录......
  • 时间击败100%用户的快慢指针删除链表中的倒数第n个节点算法
    //给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 ///***Definitionforsingly-linkedlist.*publicclassListNode{*intval;*ListNoden......