Step-by-Step
[Java] Daily LeetCode Challenge 103. Binary Tree Zigzag Level Order Traversal 본문
언어/JAVA
[Java] Daily LeetCode Challenge 103. Binary Tree Zigzag Level Order Traversal
희주(KHJ) 2023. 2. 19. 22:30https://leetcode.com/problems/binary-tree-zigzag-level-order-traversal/
Binary Tree Zigzag Level Order Traversal - LeetCode
Binary Tree Zigzag Level Order Traversal - Given the root of a binary tree, return the zigzag level order traversal of its nodes' values. (i.e., from left to right, then right to left for the next level and alternate between). Example 1: [https://assets
leetcode.com
DFS를 이용해서 탐색하고, 각 level 별로 ArrayList를 만들어 넣어주면된다.
탐색이 끝난 후 홀수 레벨에 있는 노드 값들을 Reverse 해준 후 제출하면 끝!
[코드]
class Solution {
public List<List<Integer>> ans = new ArrayList<>();
public List<List<Integer>> zigzagLevelOrder(TreeNode root) {
if(root==null)
return ans;
ans.add(new ArrayList<>());
setTree(root, 0);
for(int i=1; i<ans.size(); i+=2){
List<Integer> list = ans.get(i);
Collections.reverse(list);
}
return ans;
}
public void setTree(TreeNode node, int level){
if(max < level){
max = level;
ans.add(new ArrayList<>());
}
List<Integer> arr = ans.get(level);
arr.add(node.val);
if(node.left != null)
setTree(node.left, level+1);
if(node.right != null)
setTree(node.right, level+1);
}
}
'언어 > JAVA' 카테고리의 다른 글
Comments