题解 | #从单向链表中删除指定值的节点#

从单向链表中删除指定值的节点

http://www.nowcoder.com/practice/f96cd47e812842269058d483a11ced4f

class Node(object):
    def __init__(self,data,next=None):
        self.data=data
        self.next=next

class LinkList(object):
    def __init__(self):
        self.head = Node(None)
        self.length = 0
    
    def is_empty(self):
        return self.length == 0
    
    def insert(self,item1,item2):
        cur = self.head
        node = Node(item2)
        while cur != None:
            if cur.data == item1:
                node.next = cur.next
                cur.next = node
            cur = cur.next
    
    def remove(self,item):
        cur = self.head
        pre = cur
        while cur != None:
            if cur.data == item:
                pre.next = cur.next
                break
            else:
                pre = cur
                cur = cur.next
            continue
    
    def travel(self):
        cur = self.head
        while cur != None:
            print(cur.data,end=" ")
            cur = cur.next
    
if __name__ == "__main__":
    while True:
        try:
            string=input()
            list=string.split(" ")
            ll = LinkList()
            ll.head.data = list[1]
            i=2
            while i<len(list)-1:
                item1 = list[i+1]
                item2 = list[i]
                ll.insert(list[i+1],list[i])
                i+=2
            ll.remove(list[len(list)-1])
            ll.travel()
        except:
            break
全部评论

相关推荐

11-27 12:43
已编辑
门头沟学院 C++
点赞 评论 收藏
分享
11-06 10:58
已编辑
门头沟学院 嵌入式工程师
双非25想找富婆不想打工:哦,这该死的伦敦腔,我敢打赌,你简直是个天才,如果我有offer的话,我一定用offer狠狠的打在你的脸上
点赞 评论 收藏
分享
oppo 应用软开 22*15+0.5*12
拿到了ssp完美:真的坎坷,但是你至少拿到这么多offer了!
点赞 评论 收藏
分享
评论
点赞
1
分享
牛客网
牛客企业服务