2019-04-06 21:22 采纳率: 50%
浏览 666
已采纳

萌新提问,单链表递归排序

例如:Node(element,next)
给的是Node(3,Node(1,Node(2)))
然后做出来的排序是Node(1,Node(2,Node(3)))
要求只能使用一个方法

想了好久也想不出代码...望CSDN各位大佬解答

  • 写回答

1条回答

  • threenewbee 2019-04-07 10:46
    关注
    # encoding: utf-8
    
    
    class Node:
        def __init__(self, e, n):
            self.element = e
            self.next = n
    
        def printlist(self):
            print(self.element)
            if self.next != None:
                self.next.printlist()
    
        def order(self):
            m = self
            curr = self.next
            while curr != None:
                if curr.element < m.element:
                    m = curr
                curr = curr.next        
            if m != self:
                t = self.element
                self.element = m.element
                m.element = t
            if (self.next != None):
                self.next.order()
    
    
    list = Node(3, Node(1, Node(2, None)))
    list.order();
    list.printlist()
    

    1
    2
    3

    如果问题得到解决,请麻烦采纳下。并且请采纳

    https://ask.csdn.net/questions/713379

    https://ask.csdn.net/questions/750416

    谢谢

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?
  • ¥100 求三轴之间相互配合画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了