Algorithm

LeetCode 2487. Remove Nodes From Linked List

쿠케캬캬 2024. 5. 6. 20:53
반응형

https://leetcode.com/problems/remove-nodes-from-linked-list/

 

재귀를 이용하여 풀었습니다.

리스트의 마지막 노드를 먼저 방문해주고, 이후 방문되는 이전 노드의 값이 더 작으면 제거해줍니다.

class Solution {
public:
    ListNode* removeNodes(ListNode* head) {
        return removeNodes(head, NULL);
    }

    ListNode* removeNodes(ListNode* cur, ListNode* prv) {
        if(!cur) return prv;
        ListNode* res = removeNodes(cur->next, cur);
        if(cur->val < res->val) {
            if(prv) prv->next = res;
            return res;
        } else {
            return cur;
        }
    }
};
반응형