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

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

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

我这个更完善,我看答案都是认为每组中第二个结点已存在链表中,我这种考虑了第二个结点不在,第一个结点在的情况

while True:
    try:
        s=input().split()
        ss=s[2:-1];ss_odd=ss[0::2];ss_even=ss[1::2]
        ss=[s[1]]
        for i in range(len(ss_even)): 
            if ss_even[i] in ss:   #这是常规情况,认为后者已在
                n=ss.index(ss_even[i])
                ss.insert(n+1,ss_odd[i])
            else:                  #其实并不见得,这时就需要找前者
                n=ss.index(ss_odd[i]) 
                ss.insert(n,ss_even[i])
        ss.remove(s[-1])
        print(" ".join(ss))
    except:
        break
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务