美文网首页
2022-02-26k个一组反转链表

2022-02-26k个一组反转链表

作者: 羲牧 | 来源:发表于2022-02-26 15:04 被阅读0次

可以借鉴以前的反转链表的代码,然后分别一组一组的反转。
属于细节题目,适合反复训练

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:
    def reverseList(self, head, tail):
        if not head:
            return head
        # 注意这里需要保留与tail之后数据的连接
        pre = tail.next
        p = head
        while pre != tail:
            q = p.next
            p.next = pre
            pre = p
            p = q
        return pre, head

    def reverseKGroup(self, head: Optional[ListNode], k: int) -> Optional[ListNode]:
        dummy = ListNode()
        dummy.next = head
        left = dummy
        tail = dummy
        # print('left,right,head',left.val, right.val,head.val)
        while head:
            for i in range(k):
                tail = tail.next
                if not tail:
                    return dummy.next
            # print('head,tail',head,tail)
            # 开始翻转前先记录被翻转部分的左右两部分
            right = tail.next
            new_head, new_tail = self.reverseList(head, tail)
            # print('new_head,new_tail',new_head,new_tail)
            # 翻转后的新链表连接到原链表中间
            left.next = new_head
            new_tail.next = right

            # 重新初始化待翻转链表的head、tail以及左半部分
            head = new_tail.next
            tail = new_tail

            left = new_tail
        return dummy.next


相关文章

  • Algorithm小白入门 -- 单链表

    单链表递归反转链表k个一组反转链表回文链表 1. 递归反转链表 单链表节点的结构如下: 1.1 递归反转整个单链表...

  • 2022-02-26k个一组反转链表

    可以借鉴以前的反转链表的代码,然后分别一组一组的反转。属于细节题目,适合反复训练

  • 07-06:链表review1

    链表的常见问题 1、链表反转 1)链表反转 2)每k个一组节点反转 https://leetcode-cn.com...

  • 03-28:链表节点每K个反转

    链表节点每K个反转 关键思路: (1)每K个节点,反转K-1次 (2)反转一组后,继续从头再进行反转,重新定位链表...

  • 25. K 个一组翻转链表

    K个一组反转链表 翻转链表给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。 k 是一个正整数,它...

  • 前端常见算法题(链表篇)

    一、反转问题 2021.02.11 No.25 K个一组翻转链表 给你一个链表,每 k 个节点一组进行翻转,请你返...

  • JZ-015-反转链表

    反转链表 题目描述 输入一个链表,反转链表后,输出新链表的表头。题目链接: 反转链表[https://www.no...

  • 链表

    一、目录 206.反转链表 24.两两交换链表中的节点 25.K 个一组翻转链表(hard) 234.回文链表 1...

  • 实战高频leetcode题目

    1. 反转链表 : 反转链表是常见简单题目,定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点...

  • 25. Reverse Nodes in k-Group

    题意:就是k个一组反转链表,主要考虑你指针的应用不要懵圈; 思路:我们只要会了反转两个节点,你就会反转n个节点;这...

网友评论

      本文标题:2022-02-26k个一组反转链表

      本文链接:https://www.haomeiwen.com/subject/ecvqrrtx.html