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

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

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
全部评论

相关推荐

点赞 评论 收藏
分享
10-18 13:01
已编辑
西安理工大学 C++
小米内推大使:建议技能还是放上面吧,hr和技术面试官第一眼想看的应该是技能点和他们岗位是否匹配
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务