2019-04-06 21:22
采纳率: 62.5%
浏览 633

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

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

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

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • blownewbee 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

    谢谢

    点赞 评论

相关推荐 更多相似问题