当前位置:   article > 正文

LeetCode解题方法之——空指针_listnode怎么创造空指针

listnode怎么创造空指针

203. Remove Linked List Elements

1.创建空的头指针

1.这样可以处理空链表特殊情况,头指针为要删除的值的特殊情况
使用空指针p在这里的好处在于,
1.p保存了头结点,
2.而最开始pre和p指向了同一个节点对象,这样如果首节点是空节点或等于val时,可以直接进行操作,因此首节点也可以当做普通节点来处理,返回值是p.next即可,这种解法的巧妙之处就在这里。

class Solution:
    def removeElements(self, head, val):
        dummyNode = ListNode(0)
        dummyNode.next = head
        pre = dummyNode
        cur = head
        while cur:
            if cur.val==val:
                pre.next = cur.next
            else:
                pre = cur
            cur = cur.next
        return dummyNode.next
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

2.循环解法

class Solution:
    def removeElements(self, head, val):
        
        if not head:
            return None
        while head!=None and head.val==val:
            head = head.next
        pre = None
        cur = head
        while cur:
            if cur.val==val:
                pre.next = cur.next
            else:
                pre = cur
            cur = cur.next
        return head
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
class Solution:
    def removeElements(self, head, val):
        """
        :type head: ListNode
        :type val: int
        :rtype: ListNode
        """
        while head and head.val==val:
            head=head.next
        p = head
        while p and p.next:
            if p.next.val == val:
                p.next = p.next.next
            else:
                p = p.next
        return head
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

3. 递归解法

class Solution:
    def removeElements(self, head, val):
        """
        :type head: ListNode
        :type val: int
        :rtype: ListNode
        """
        if not head: return None
        head.next = self.removeElements(head.next, val)
        return head.next if head.val==val else head

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/945609
推荐阅读
相关标签
  

闽ICP备14008679号