반응형
Recent Posts
Notice
Recent Comments
Link
250x250
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- greedy
- leetcode
- Algorithm
- priority queue
- PCCP
- 알고리즘
- 리트코드
- 우선순위 큐
- HashMap
- hashset
- coding
- 브루트포스
- recursion
- Java
- programmers
- binary tree
- ArrayList
- string
- 깊이우선탐색
- two pointers
- 부분배열
- 재귀함수
- Array
- dfs
- DP
Archives
- Today
- Total
지식창고
[Java] LeetCode 144. Binary Tree Preorder Traversal 본문
728x90
반응형
[Java] LeetCode 144. Binary Tree Preorder Traversal
문 제 :
이진트리 root가 주어진다.
root 를 preorder로 순회한 결과를 List로 반환하라. (전위 순회)
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode() {}
* TreeNode(int val) { this.val = val; }
* TreeNode(int val, TreeNode left, TreeNode right) {
* this.val = val;
* this.left = left;
* this.right = right;
* }
* }
*/
Example )
Input: root = [1,null,2,3]
Output: [1,2,3]
접 근 :
DFS를 활용해 재귀함수로 접근
해 결 :
결과값을 저장할 List를 선언해준다.
dfs 함수를 선언하고 preorder의 순서대로 Tree를 순회한다.
preorder의 순서 :
Tree의 왼쪽 -> Tree의 오른쪽
List를 선언해준다.
List<Integer> n = new ArrayList<Integer>();
root가 비어있는지 확인해준다. (예외처리)
if(root == null) return n;
dfs함수를 선언해준다.
매개변수로는 node, 결과값을 담을 List가 들어간다.
List에 값을 저장해주고, preorder순회를 한다.
public void dfs(TreeNode node, List<Integer> n) {
n.add(node.val);
if(node.left != null) dfs(node.left, n);
if(node.right != null) dfs(node.right, n);
}
결 과 :
class Solution {
public List<Integer> preorderTraversal(TreeNode root) {
List<Integer> n = new ArrayList<Integer>();
if(root == null) return n;
dfs(root, n);
return n;
}
public void dfs(TreeNode node, List<Integer> n) {
n.add(node.val);
if(node.left != null) dfs(node.left, n);
if(node.right != null) dfs(node.right, n);
}
}
728x90
반응형
'Algorithm > Leetcode' 카테고리의 다른 글
[Java] LeetCode 101. Symmetric Tree (1) | 2023.01.10 |
---|---|
[Java] LeetCode 100. Same Tree (1) | 2023.01.10 |
[Java] LeetCode 149. Max Points on a Line (0) | 2023.01.09 |
[Java] LeetCode 452. Minimum Number of Arrows to Burst Balloons (0) | 2023.01.06 |
[Java]LeetCode 2244. Minimum Rounds to Complete All Tasks (2) | 2023.01.04 |
Comments