博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【leetcode】Reorder List (python)
阅读量:4067 次
发布时间:2019-05-25

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

问题的思路是这样:

循环取头部合并,其实也可以换个角度来看,就是将后面的链表结点,一次隔空插入到第一部分的链表中。

class Solution:    # @param head, a ListNode    # @return nothing    def reorderList(self, head):        if None == head or None == head.next:            return head        #找到中间点,截断        pfast = head        pslow = head                while pfast.next and pfast.next.next:            pfast = pfast.next.next            pslow = pslow.next        pfast = pslow.next        pslow.next = None                #将第二部分的结点逆置        pnext = pfast.next        pfast.next = None        while pnext:            q = pnext.next            pnext.next = pfast            pfast = pnext            pnext = q        #将逆置后的链表隔空插入到第一部分        tail = head        while pfast:            pnext = pfast.next            pfast.next = tail.next            tail.next = pfast            tail = tail.next.next            pfast = pnext        return head

你可能感兴趣的文章
mongodb管理与安全认证
查看>>
nodejs内存控制
查看>>
nodejs Stream使用中的陷阱
查看>>
MongoDB 数据文件备份与恢复
查看>>
数据库索引介绍及使用
查看>>
MongoDB数据库插入、更新和删除操作详解
查看>>
MongoDB文档(Document)全局唯一ID的设计思路
查看>>
mongoDB简介
查看>>
Redis持久化存储(AOF与RDB两种模式)
查看>>
memcached工作原理与优化建议
查看>>
Redis与Memcached的区别
查看>>
redis sharding方案
查看>>
程序员最核心的竞争力是什么?
查看>>
Node.js机制及原理理解初步
查看>>
linux CPU个数查看
查看>>
分布式应用开发相关的面试题收集
查看>>
简单理解Socket及TCP/IP、Http、Socket的区别
查看>>
利用HTTP Cache来优化网站
查看>>
利用负载均衡优化和加速HTTP应用
查看>>
消息队列设计精要
查看>>