Python 如何将节点添加到链接列表中?

Python 如何将节点添加到链接列表中?,python,data-structures,linked-list,nodes,Python,Data Structures,Linked List,Nodes,我正在创建一个函数,它接受一个排序的链表和一个值。我通过new_node=LN(v)创建一个具有给定值的新节点。我正在尝试返回一个链接列表,其中新节点位于正确的位置。这个例子将有助于澄清 Ex) ll=将列表转换为链接列表([4,7,9,14])我有一个链接列表:4->7->9->12->14 职能: 插入订单(ll,12) 返回“4->7->9->12->14->None”的链接列表 我完全无法理解如何将新节点插入正确的位置。函数中的最后一个else语句不正确 def insert_order

我正在创建一个函数,它接受一个排序的链表和一个值。我通过new_node=LN(v)创建一个具有给定值的新节点。我正在尝试返回一个链接列表,其中新节点位于正确的位置。这个例子将有助于澄清

Ex)

ll=将列表转换为链接列表([4,7,9,14])我有一个链接列表:4->7->9->12->14

职能:

插入订单(ll,12)

返回“4->7->9->12->14->None”的链接列表

我完全无法理解如何将新节点插入正确的位置。函数中的最后一个else语句不正确

def insert_ordered(ll,x):
    new_node = LN(v) #Creates new node

    #If given ll is empty, newnode is the linkedlist
    if  ll == None:
        ll = new_node

    #Makes new_node the head of ll if first val is >= new_node value.
    elif ll.value >= new_node.value:
        temp = ll
        ll = new_node
        ll.next = temp

    #[ERROR] Adds new_node between two nodes of ll in sorted order. 
    else:
        while ll.next != None:
            if ll.value < new_node.value:
                ll = ll.next
                new_node.next = ll.next
                ll.next = new_node

    return ll
def插入命令(ll,x):
新建节点=LN(v)#创建新节点
#如果给定的ll为空,则newnode是linkedlist
如果ll==无:
ll=新的_节点
#如果第一个val大于等于新节点值,则使新节点成为ll的头。
elif ll.value>=新节点值:
温度=ll
ll=新的_节点
ll.next=temp
#[错误]按排序顺序在ll的两个节点之间添加新的_节点。
其他:
而你,下一个!=无:
如果ll.value
迭代求解后,是否可以递归求解?

尝试以下方法:

class LN:
    def __init__(self, value):
        self.value = value
        self.next = None

def insert_ordered(root, data):
    node = LN(data)
    if root == None:
        return node
    else:
        if root.value > data:
            node.next = root
            return node
        else:
            temp, prev = root, None
            while temp.next and temp.value <= data:
                prev = temp
                temp = temp.next

            if temp.next == None and temp.value <= data:
                temp.next = node
            else:
                node.next = prev.next
                prev.next = node

            return root

root = None
root = insert_ordered(root, 4)
root = insert_ordered(root, 7)
root = insert_ordered(root, 9)
root = insert_ordered(root, 14)
root = insert_ordered(root, 12)
#4->7->9->12->14
class-LN:
定义初始值(自身,值):
自我价值=价值
self.next=无
def插入命令(根,数据):
节点=项次(数据)
如果根=无:
返回节点
其他:
如果root.value>数据:
node.next=root
返回节点
其他:
温度,上一个=根,无
而临时下一步和临时值9->12->14

您的问题到底是什么?您好,我正在尝试返回一个链表,其中按顺序包含原始链表和v all的值。我添加的示例输入和输出可能有助于澄清问题。