美文网首页
第四十天 Remove Linked List Elements

第四十天 Remove Linked List Elements

作者: 业余马拉松选手 | 来源:发表于2018-10-11 23:44 被阅读8次

    继续“链表” 每每数据结构和算法的第一道“难关”

    https://leetcode-cn.com/problems/remove-linked-list-elements/description/

    删除链表里指定的值。这道题两个关键点:
    1、遍历链表的时候需要保存当前节点的前一个节点的指针,在链表里只要涉及到删除元素的时候,都需要保存前一个节点的指针;
    2、虚拟头节点的“秒”用,不需要对第一个元素做特殊处理,避免边界条件考虑不周全

    最终AC的代码如下:

    # Definition for singly-linked list.
    # class ListNode:
    #     def __init__(self, x):
    #         self.val = x
    #         self.next = None
    
    class Solution:
        def removeElements(self, head, val):
            """
            :type head: ListNode
            :type val: int
            :rtype: ListNode
            """
            dummyHead = ListNode(-1)
            dummyHead.next = head
            prev = dummyHead
            cur = prev.next
            while cur != None:
                if cur.val == val:
                    prev.next = cur.next
                else:
                    prev = prev.next
                cur = cur.next
            return dummyHead.next
    

    相关文章

      网友评论

          本文标题:第四十天 Remove Linked List Elements

          本文链接:https://www.haomeiwen.com/subject/xcziaftx.html