zoukankan      html  css  js  c++  java
  • 边工作边刷题:70天一遍leetcode: day 46

    Odd Even Linked List

    要点:实现题,最简单的方法就是交错的连接even/odd的下一个结点。p1表示当前已经连好的odd,p2表示当前已经连好的even。最后只需要开始记录even的head,就可以用最后p1.next来连成一个linked list。

    • invariant是p2 and p2.next:表示当前even存在,并且下一个odd存在(注意上一轮已经确保当前odd存在)
    • 其实invariant也可以是通常的p1 and p2:表示当前已连好的odd和even都存在。之所以不这样做是保证在退出loop后p1还是valid,这样就可以连接p1.next(类似于用cur.next作为invariant保证cur valid)
    • 注意这题貌似和Copy List with Random Pointer很像,但是那题一定是配对出现的,所以invariant只需一个node。另外因为不需要把copy连上,所以那题就是对当前node,而不是copy and copy.next
    # Definition for singly-linked list.
    # class ListNode(object):
    #     def __init__(self, x):
    #         self.val = x
    #         self.next = None
    
    class Solution(object):
        def oddEvenList(self, head):
            """
            :type head: ListNode
            :rtype: ListNode
            """
            if not head or not head.next: return head
            p1,p2,pre = head, head.next, head.next
            while p2 and p2.next:
                p1.next = p2.next
                p1 = p1.next
                p2.next = p1.next
                p2 = p2.next
            
            p1.next = pre
            return head
    
    
  • 相关阅读:
    利用python脚本统计和删除redis key
    利用expect交互完成多台linux主机ssh key推送
    iptables -L很慢的原因
    tomcat各个端口的作用
    rabbitmq集群搭建
    ping 没有回icmp reply
    go mod 无法下载依赖问题
    0/1 nodes are available: 1 node(s) had taint
    go 编译:build constraints exclude all Go files in
    k8s单机部署
  • 原文地址:https://www.cnblogs.com/absolute/p/5690307.html
Copyright © 2011-2022 走看看