203. 移除链表中的元素(Python)

题目

难度:★☆☆☆☆
类型:链表

删除链表中等于给定值 val 的所有节点。

示例

输入: 1->2->6->3->4->5->6, val = 6
输出: 1->2->3->4->5

解答

移除链表中的指定元素,需要两个临时变量:

  1. 伪头结点pre_head:将输入的头结点挂在该结点上,作为整个链表的前序结点,用于处理头结点即为要删去的情况;

  2. 当前结点cur:用于迭代遍历和删除结点元素。

class Solution(object):
    def removeElements(self, head, val):
        """
        :type head: ListNode
        :type val: int
        :rtype: ListNode
        """
        cur = pre_head = ListNode(0)            # 定义一个辅助结点
        pre_head.next = head                    # 把输入链表挂在该结点上

        while cur.next:                         # 当前结点不是最后一个结点时
            if cur.next.val == val:             # 如果下一个结点的值是要删除的
                cur.next = cur.next.next        # 删除下一个结点
            else:                               # 否则
                cur = cur.next                  # 当前结点后移
        return pre_head.next                    # 返回处理后的链表

为了更好的观察效果,读者可以参考和使用【链表基础】
中的创建链表和打印链表函数。

如有疑问或建议,欢迎评论区留言~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容