203. Remove Linked List Elements
2021. 11. 12. 10:12ㆍLeetcode
Description:
Given the head of a linked list and an integer val, remove all the nodes of the linked list that has Node.val == val, and return the new head.

# Definition for singly-linked list.
# class ListNode:
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
'''
[1] two pointers - inplace)
idea::
this problem can be solved using out-place. but, in-place also can be solved.
code::
def removeElements(self, head: Optional[ListNode], val: int) -> Optional[ListNode]:
reader=writer=dummy=ListNode(-1,head)
while writer:
reader=writer.next
while reader and reader.val==val:
reader=reader.next
writer.next=reader
writer=writer.next
return dummy.next
-T/C: O(n)
-S/C: O(1)
'''
class Solution:
def removeElements(self, head: Optional[ListNode], val: int) -> Optional[ListNode]:
reader=writer=dummy=ListNode(-1,head)
while writer:
reader=writer.next
while reader and reader.val==val:
reader=reader.next
writer.next=reader
writer=writer.next
return dummy.next'Leetcode' 카테고리의 다른 글
| 19. Remove Nth Node From End of List (0) | 2021.11.12 |
|---|---|
| 367. Valid Perfect Square (0) | 2021.11.12 |
| 1413. Minimum Value to Get Positive Step by Step Sum (0) | 2021.11.11 |
| 23. Merge k Sorted Lists (0) | 2021.11.10 |
| 122. Best Time to Buy and Sell Stock II (0) | 2021.11.10 |