题解 | #删除链表的节点#8行代码处理删除链表节点问题,可以删除多个节点

删除链表的节点

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

class Solution:
    def deleteNode(self , head: ListNode, val: int) -> ListNode:
        # write code here
        #该方法可以处理删除多个节点
        rt=head#复制原始链表的起始节点位置
        if rt.val==val:#判断起始节点的值是否为要删除的节点的值,如果是,则将head指向起始节点的下一个节点
            head=rt.next#不直接返回rt.next是为了处理删除多个节点的问题
            #return rt.next #如果只处理删除单个节点的问题,那么直接返回rt.next即可
        while rt.next!=None:#由于当前节点的值在上一次循环已经被遍历过了,所以只要下一个节点为空就可以跳出循环
            if rt.next.val==val:#判断下一个节点的值是否为要删除的节点值
                rt.next=rt.next.next#如果是,则将下一个节点指向系下下个节点
            rt=rt.next#继续向后遍历节点
        return head#返回rt的起始节点
全部评论
没有考虑到删除结点为最后一个结点的情况,此时.next.next不存在,需要加一个判断.next.next是否为空的操作~
点赞
送花
回复
分享
发布于 2022-04-21 15:52
是的,二刷的时候自己重新写了一遍,加上了补充判断,感谢指正。
点赞
送花
回复
分享
发布于 2022-05-15 17:18
蔚来
校招火热招聘中
官网直投

相关推荐

1 收藏 评论
分享
牛客网
牛客企业服务