コード例 #1
0
def create_list():
    ll = LinkedList()
    ll.append(1)
    ll.append(3)
    ll.append(4)
    ll.append(10)
    ll.append(5)
    ll.append(6)
    return ll
コード例 #2
0
def create_list():
    ll = LinkedList()
    ll.append(1)
    ll.append(1)
    # ll.append(3)
    # ll.append(4)
    # ll.append(10)
    # ll.append(4)
    # ll.append(3)
    # ll.append(2)
    # ll.append(1)
    return ll
コード例 #3
0
def create_list():

    ll = LinkedList()
    ll.append(1)
    ll.append(2)
    ll.append(3)
    ll.append(4)
    ll.append(5)
    ll.append(6)
    # ll.append(7)
    # ll.append(8)
    return ll
コード例 #4
0
def create_list():
    ll = LinkedList()
    ll.append(1)
    cycle_node = ll.tail
    ll.append(2)
    ll.append(3)
    ll.append(4)
    ll.append(5)
    ll.append(6)
    ll.append(7)
    ll.append(8)
    ll.tail.next = cycle_node
    return ll
コード例 #5
0
def merge_sorted_list_two(node_one, node_two):
    if node_one is None:
        return node_two
    if node_two is None:
        return node_one
    temp_node = node_one  #记录较小的节点
    if node_one.data < node_two.data:
        temp_node.next = merge_sorted_list_two(node_one.next, node_two)
    else:
        temp_node = node_two
        temp_node.next = merge_sorted_list_two(node_one, node_two.next)
    return temp_node


if __name__ == '__main__':
    l1 = LinkedList()
    l1.append(2)
    l1.append(5)
    l1.append(8)
    l1.append(1)
    l1.append(12)
    l1.append(5)
    l1.append(10)

    l2 = LinkedList()

    # result = merge_sorted_list(l1.head, l2.head)
    result = sort_linked_list(l1.head)
    l2.head = result
    l2.print_list_two()
コード例 #6
0
        node_list[root_index] = node_list[node_index]
        root_index = node_index
        node_index = (root_index << 1) + 1
    node_list[root_index] = temp_node





if __name__ == '__main__':

    # result = merge_sorted_list(l1.head, l2.head)
    ll_list = []
    node_list = []
    for i in range(10):
        ll_list.append(LinkedList())

    for i in range(50):
        if i in [13,  36, 18, 19, 15, 25, 35, 45]:
            continue
        ll_list[i % 10].append(i)
    for i in range(10):
        node_list.append(ll_list[i].head)
    for i in range(10):
        ll_list[i].print_list_two()
    node_list.reverse()
    result = merge_k_sorted_lists_two(node_list)
    lll = LinkedList()
    lll.head = result
    lll.print_list_two()
コード例 #7
0
            return -1

    #根据相遇节点,求出环的入口节点,即为交叉点
    temp_node_one = node_one
    temp_node_two = meeting_node
    while temp_node_two != temp_node_one:
        temp_node_one = temp_node_one.next
        temp_node_two = temp_node_two.next
    return temp_node_one.data

    #求的相遇点,遍历一遍即可知道环的长度。
    #求的入环点,从头节点遍历到入环点的长度加上环的长度,等于链表的长度


if __name__ == '__main__':
    ll = LinkedList()
    # ll.append(1)
    ll.append(2)
    # ll.append(3)

    l1 = LinkedList()
    l1.append(10)
    l1.append(11)
    # l1.append(12)
    l1.tail.next = ll.head
    l1.print_list_two()

    l2 = LinkedList()
    l2.append(4)
    l2.tail.next = ll.head
    l2.print_list_two()