TIL
[코테연습] 2181. Merge Nodes in Between Zeros
크라00
2024. 7. 4. 10:34
- Linked List 문제
https://leetcode.com/problems/merge-nodes-in-between-zeros/description/?envType=daily-question&envId=2024-07-04
- 문제 해석
1. single LinkedList 로 연결되어있는 ListNode 가 있다.
2. 해당 ListNode가 0 이면 그 이전까지의 node 의 숫자를 합하여 새로운 ListNode 로 만들어라.
- 문제 풀이
1. ListNode 를 확인하기위해서는 재귀함수를 이용한다.
2. target 될 ListNode 의 val 이 0 일 때, 새로운 ListNode 를 ListNode.next 에 넣는다.
3. val 이 0 이 아닐 때는, head.val 값을 sum 에 더하여 재귀함수를 호출한다.
class Solution {
public ListNode mergeNodes(ListNode head) {
ListNode node = new ListNode();
merge(head.next, node, 0);
// find(node);
return node.next;
}
void merge(ListNode head, ListNode node, int sum) {
if (head == null) {
return;
}
if (head.val == 0) {
node.next = new ListNode(sum);
sum = 0;
merge(head.next, node.next, sum);
} else {
sum+=head.val;
merge(head.next, node, sum);
}
}
void find(ListNode head) {
if (head == null) {
return;
}
find(head.next);
}
}