博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Leetcode. Reverse Nodes in k-Group
阅读量:3623 次
发布时间:2019-05-21

本文共 1209 字,大约阅读时间需要 4 分钟。

这题有两种解法,

1: 对于任意的k-group,利用O(k)的额外空间存储val,然后从两头开始遍历交换元素->逆转,最后返回一个结点。

2 因为节点对插入操作的复杂度是O(1),我们每遇到一个节点,就将它插入到当前的首节点之后,这样时间复杂度都是O(n),空间复杂度是O(1)。

class Solution(object):    def reverseKGroup(self, head, k):        def count(h):            cnt = 0            while h:h=h.next;cnt+=1            return cnt        # def reverse(pre,k):            # s = []            # h=pre            # pre=pre.next            # j = 0            # for i in range(k):                # j+=1                # s.append(pre.val)                # pre=pre.next            # pre = h.next            # last = None            # for i in range(j-1,-1,-1):                # pre.val = s[i]                # last = pre                # pre = pre.next            # return last        def reverse(pre,k):            head = pre.next            cur = head.next            for i in range(k-1):                head.next = cur.next                cur.next = pre.next                pre.next = cur                cur = head.next            return head        pre = ListNode(0)        Head = pre        start,n = 0,count(head)        pre.next = head        while start+k<=n:            pre = reverse(pre,k)            start+=k        return Head.next

转载地址:http://smrkn.baihongyu.com/

你可能感兴趣的文章
SpringSecurity&thyemleaf命名空间约束地址
查看>>
字符串(二)
查看>>
字符串(三)
查看>>
字符串练习
查看>>
正则表达式
查看>>
Java中集合的输出方式
查看>>
数组排序的四种方法
查看>>
Java学习笔记
查看>>
JDBC技术(一)
查看>>
JDBC技术(三)——预防SQL注入攻击
查看>>
JDBC技术(五)——JDBC工具类
查看>>
JDBC(六)——JDBC读取数据表,将数据存入对象中,并将对象存储到集合中
查看>>
hibernate原理
查看>>
IDEA快捷键
查看>>
Struts2原理
查看>>
activemq总结
查看>>
jdk环境变量配置
查看>>
mybatis原理
查看>>
spring原理
查看>>
AOP
查看>>