2487. Remove Nodes From Linked List
Medium
You are given the head
of a linked list.
Remove every node which has a node with a greater value anywhere to the right side of it.
Return the head
of the modified linked list.
Example 1:
- Input: head = [5,2,13,3,8]
- Output: [13,8]
- Explanation: The nodes that should be removed are 5, 2 and 3.
- Node 13 is to the right of node 5.
- Node 13 is to the right of node 2.
- Node 8 is to the right of node 3.
Example 2:
- Input: head = [1,1,1,1]
- Output: [1,1,1,1]
- Explanation: Every node has value 1, so no nodes are removed.
Constraints:
- The number of the nodes in the given list is in the range
[1, 105]
. 1 <= Node.val <= 105
Solution:
/** * Definition for a singly-linked list. * class ListNode { * public $val = 0; * public $next = null; * function __construct($val = 0, $next = null) { * $this->val = $val; * $this->next = $next; * } * } */ class Solution { /** * @param ListNode $head * @return ListNode */ function removeNodes($head) { if ($head == null) { return null; } $head->next = $this->removeNodes($head->next); return $head->next != null && $head->val < $head->next->val ? $head->next : $head; } }
Contact Links
If you found this series helpful, please consider giving the repository a star on GitHub or sharing the post on your favorite social networks 😍. Your support would mean a lot to me!
Top comments (0)