HW. Remove the specified values from the singly linked list node

Here Insert Picture Description

class ListNode:
    def __init__(self, val):
        self.val = val
        self.next = None

while True:
    #注意输入是一行不是多行
    try:
        dummy = ListNode(-1)
        array = list(map(int, input().split()))
        n = array[0]
        root =  ListNode(array[1])
        dummy.next = root
        for k in range(n-1):
            end, start = array[(k+1)*2], array[(k+1)*2+1]
            pNode = dummy
            while(pNode and pNode.val != start):
                pNode = pNode.next
            new = ListNode(end)
            new.next = pNode.next
            pNode.next = new

        del_val = array[-1]
        pNode = dummy
        # 使用next
        while(pNode.next and pNode.next.val!=del_val):
            pNode = pNode.next
        pNode.next = pNode.next.next
        array = []
        pNode = dummy.next
        while pNode:
            array.append(str(pNode.val))
            pNode = pNode.next
        print(" ".join(array) + " ")
    except:
        break

Guess you like

Origin blog.csdn.net/dpengwang/article/details/93207278