题解 | #链表中的节点每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

全部评论

相关推荐

04-27 08:59
常州大学 Java
牛客139242382号:《两门以上汇编语言》
点赞 评论 收藏
分享
_mos_:忍耐王
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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