首页 > 试题广场 >

排序奇升偶降链表

[编程题]排序奇升偶降链表
  • 热度指数:3181 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定一个奇数位升序,偶数位降序的链表,返回对其排序后的链表。

题面解释:例如链表 1->3->2->2->3->1 是奇数位升序偶数位降序的链表,而 1->3->2->2->3->2 则不符合题目要求。

数据范围:链表中元素个数满足 ,链表中的元素大小满足
示例1

输入

{1,3,2,2,3,1}

输出

{1,1,2,2,3,3}
示例2

输入

{1,2,2}

输出

{1,2,2}

说明:本题目包含复杂数据结构ListNode,点此查看相关信息
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param head ListNode类 
# @return ListNode类
#
class Solution:
    def sortLinkedList(self , head: ListNode) -> ListNode:
        # write code here
        if head is None:
            return head
        tmp = []
        while head:
            tmp.append(head.val)
            head = head.next
        tmp.sort()
        pre = ListNode(-1)
        cur = pre
        while tmp:
            cur.next = ListNode(tmp.pop(0))
            cur = cur.next
        return pre.next

发表于 2022-05-22 12:19:58 回复(0)