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 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题