题解 | #链表中的节点每k个一组翻转#

链表中的节点每k个一组翻转

https://www.nowcoder.com/practice/b49c3dc907814e9bbfa8437c251b028e

class Solution:
    def reverseKGroup(self , head: ListNode, k: int) -> ListNode:
        # write code here
        #加表头
        if head==None: return head
        res=ListNode(-1)
        res.next=head
        pre=res
        cur=pre.next
        cnt=0
        #查看长度
        p=head
        len=0
        while p:
            p=p.next
            len=len+1
        while cur.next:
            cnt=cnt+1
            if cnt==len-len%k or len < k: break   #计算需要反转的区间
            if cnt % k == 0:  #重置头节点
                pre=cur
                cur=cur.next
            else:  #对temp以pre为头节点进行头插法
                temp=cur.next
                cur.next=temp.next
                temp.next=pre.next
                pre.next=temp
        return res.next

全部评论

相关推荐

Twilight_mu:经典我朋友XXXX起手,这是那种经典的不知道目前行情搁那儿胡编乱造瞎指导的中年人,不用理这种**
点赞 评论 收藏
分享
05-09 12:23
已编辑
华南理工大学 Java
野猪不是猪🐗:给他装的,双九+有实习的能看的上这种厂我直接吃⑨✌们拿它练练面试愣是给他整出幻觉了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务