Exemple #1
0
def partation(ll, K):
    """
    Kの大きさで分割して並び替えたものを返す。
    """
    n = ll
    left, right = Node(), Node()
    while True:
        if n.data < K:
            left.appendToTail(n.data)
        else:
            right.appendToTail(n.data)
        if n.next == None:
            break
        n = n.next

    # これだと宣言の関係上一番始めがNoneになっているのでとりのぞいてから連結する
    right = right.get_Nth_node(1)
    left = left.get_Nth_node(1)
    left.appendNodeToTail(right)
    return left
Exemple #2
0
def remove_this_node(node):
    n = node
    while n.next != None:
        n.data = n.next.data
        # 終端処理、最後のノードを一個消す。
        if n.next.next == None:
            n.next = None
        else:
            # 終端じゃない場合は次のノードの処理に
            n = n.next


if __name__ == "__main__":
    ls = Node(1)
    ls.appendToTail(2)
    ls.appendToTail(3)
    ls.appendToTail(4)
    ls.appendToTail(5)
    ls.appendToTail(6)
    ls.appendToTail(7)
    ls.appendToTail(8)
    ls.appendToTail(9)
    ls.appendToTail(10)
    ls.printls()

    delnode = ls.get_Nth_node(5)
    remove_this_node(delnode)

    ls.printls()