반응형
https://leetcode.com/problems/flatten-a-multilevel-doubly-linked-list/
1. 2022/05/07 시도
소요시간: 9분
class Solution {
public Node flatten(Node head) {
Node current = head;
while(current != null) {
Node nextNode = current.next;
if (current.child != null) {
current.next = current.child;
current.child.prev = current;
current.child = null;
Node last = current;
while (last.next != null) {
last = last.next;
}
if (nextNode != null) {
nextNode.prev = last;
last.next = nextNode;
}
}
current = current.next;
}
return head;
}
}
풀이 접근 과정
기본적으로 current로 노드를 순회하도록 한다.
child가 있을 때, 연결해준다.
단 예외처리를 잘해줘야한다.
느낀점
- 이번에도 nextNode가 null처리를 놓쳤다. 다음에는 edge case까지 고려해서 잘 풀면 좋겠다.
알고리즘 정리노트: .leetcode(알고리즘 문제풀이 접근)
반응형
'알고리즘 풀이' 카테고리의 다른 글
.leetcode(138. Copy List with Random Pointer) (0) | 2022.05.07 |
---|---|
.leetcode(708. Insert into a Sorted Circular Linked List) (0) | 2022.05.07 |
.leetcode(2. Add Two Numbers) (0) | 2022.05.06 |
.leetcode(21. Merge Two Sorted Lists) (1) | 2022.05.06 |
.leetcode(707. Design Linked List) (0) | 2022.05.05 |