Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 대학생
- gamification
- 투빌리지
- 균형이진트리
- 쿠킹덤
- lab03-03.exe
- JS
- Practicalmalwareanalysis
- JavaScript
- 투두리스트
- 자바스크립트
- B트리
- toVillage
- 리버싱
- orcle
- 사이버보안
- 악코분
- N-ary Tree Preorder Traversal
- 마을짓기
- to-do
- 사이드프로젝트
- 릿코드
- leetcode
- 듀얼테이블
- dualtable
- 토이프로젝트
- TODOLIST
- 다해요
- 악성코드분석
- 가차시스템
Archives
- Today
- Total
이것저것
589. N-ary Tree Preorder Traversal 본문
문제
문제해설
자식 노드가 2개 이상이 올 수 있는 트리가 주어진다. 전위순회를 통해 노드의 값을 반환해야한다.
정답코드
let createOutput = (root, output) => {
if(root === null)
return [];
output.push(root.val);
root = root.children;
root.forEach((child) => createOutput(child, output));
}
let preorder = (root) => {
let output = [];
createOutput(root, output);
return output;
}
풀이까지의 과정
1. 첫번째 트라이
2. 두번째 트라이
구조를 더 정확하게 파악하기 위해서 의도적으로 다음과 같이 작성했다.
3. 세번째 트라이
두번째 트라이에서 트리의 레벨이 하나 아래로 내려갈수록 같은 구조가 반복되는 것을 확인하고 다음과 같이 수정해주었다.
4. 네번째 트라이
root 가 [] 인 경우에 막혔던 것이였다. 이때 if(root.length === 0) 이면 null 인 경우까지 한번에 체크가 되는줄 알았는데 아니였다.
'코딩테스트 > leetcode' 카테고리의 다른 글
409. Longest Palindrome (0) | 2023.04.01 |
---|---|
142. Linked List Cycle II (0) | 2023.03.31 |