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

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

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

# 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

谢谢