美文网首页
链表重排序

链表重排序

作者: pythonpy | 来源:发表于2019-01-19 11:51 被阅读0次

题目要求:对于链表如L1->L2->L3->L4->L5->L6->L7重新排列为L1->L7->L2->L6->L3->L5->L4

解题1.先将先找到中间节点,将链表从中间节点分为两部分(技巧,只需写两个引用,一个步长为1,一个步长为2,步长为2 的结束时,步长为1 的自然就在中间位置)

2.将后一部分的链表进行倒置

3.合并链表即为所得

def noHeadreverseList(head):

    if head == None or head.next == None:

        return

    cur = head.next

    pre = head

    pre.next = None

    while cur !=None:

        next = cur.next

        cur.next = pre

        pre = cur

        cur = next

    return pre

def findMidder(a):

    if a is None or a.next is None:

        return

    twoStep = a

    oneStep = a

    oneStepPre = a

    while twoStep is not None and twoStep.next is not None:

        oneStepPre = oneStep

        oneStep = oneStep.next

        twoStep = twoStep.next.next

    oneStepPre.next = None

    return oneStep

def reOrder(a):

    if a is None or a.next is None:

        return

    mid = findMidder(a.next)

    cur2 = noHeadreverseList(mid)

    s = cur2

    while s != None:

        print(s.x, end=" ")

        s = s.next

    print()

    cur = a.next

    while cur.next is not None:

        tmp = cur.next

        cur.next = cur2

        cur = tmp

        tmp = cur2.next

        cur2.next = cur

        cur2=tmp

    cur.next = cur2

相关文章

  • 1.数据结构-链表问题

    链表相关问题 删除节点 链表去重 有环链表 反转链表 链表排序 链表相交 其他问题 面试题 02.03. 删除中间...

  • leecode刷题(27)-- 合并k个排序链表

    leecode刷题(27)-- 合并k个排序链表 合并k个排序链表 合并 k 个排序链表,返回合并后的排序链表。请...

  • 机试常用算法和题型-链表专题

    链表增删改查 链表选择排序法+找到新节点排序位置再插入 单循环链表+合并 链表查找和交换 链表如何删除最大值,排序...

  • 常见简单算法

    1.数组 二分查找: 冒泡排序 插入排序 选择排序 快速排序 链表 链表反转 合并2个有序链表 树 前序遍历

  • 排序算法、链表是否有环、反转、删除结点

    折半查找 冒泡排序 选择排序 插入排序 判断一个链表是否有环 链表反转 链表删除结点方法: 只给定单链表中某个结点...

  • 排序算法、链表反转

    快速排序、冒泡排序、选择排序 链表反转

  • ARTS第五周2020620

    Algorithm 合并K个排序链表 合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。 示例...

  • 移除重复节点

    编写代码,移除未排序链表中的重复节点。保留最开始出现的节点。 解法: Set 去重 新建一个Set集合,从链表的头...

  • 合并K个排序链表【LeetCode:23】

    题目: 合并K个排序链表 合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。 示例: 输入: ...

  • LeetCode-148-排序链表

    LeetCode-148-排序链表 148. 排序链表[https://leetcode-cn.com/probl...

网友评论

      本文标题:链表重排序

      本文链接:https://www.haomeiwen.com/subject/fvwadqtx.html