[알고리즘] LeetCode - Remove Linked List Elements

Jerry·2021년 5월 26일
0

LeetCode

목록 보기
40/73
post-thumbnail

LeetCode - Remove Linked List Elements

문제 설명

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.

입출력 예시

Example 1:

Input: head = [1,2,6,3,4,5,6], val = 6
Output: [1,2,3,4,5]

Example 2:

Input: head = [], val = 1
Output: []

제약사항

Constraints:

The number of nodes in the list is in the range [0, 104].
1 <= Node.val <= 50
0 <= k <= 50

Solution

/**
 * Definition for singly-linked list. public class ListNode { int val; ListNode
 * next; ListNode() {} ListNode(int val) { this.val = val; } ListNode(int val,
 * ListNode next) { this.val = val; this.next = next; } }
 */
class Solution {
    public ListNode removeElements(ListNode head, int val) {

        while (head != null && head.val == val) {
            head = head.next;
        }

        ListNode initHead = head;

        while (head != null) {

            while (head.next != null && head.next.val == val) {
                head.next = head.next.next;
            }
            head = head.next;
        }
        return initHead;
    }
}
profile
제리하이웨이

0개의 댓글