반응형
https://leetcode.com/problems/binary-tree-pruning/
1. 2022.02.05 시도
소요시간: 5분
// dfs
class Solution {
public TreeNode pruneTree(TreeNode root) {
root = dfs(root);
return root;
}
public TreeNode dfs(TreeNode root) {
if (root == null) {
return null;
}
TreeNode left = dfs(root.left);
if (left == null) {
root.left = null;
}
TreeNode right = dfs(root.right);
if (right == null) {
root.right = null;
}
if (root.left == null && root.right == null && root.val == 0) {
return null;
}
return root;
}
}
풀이 접근 과정
dfs로 left,right checkt하면서 풀면 되겠다고 생각했다.
느낀점
- dfs는 생각보다 간단하게 풀렸다.
- iterative하게 풀고 싶었는데 30분이상 걸려도 풀지 못했다. 다음에 다시 풀어보고 싶다.
- 댓글 삭제하는 알고리즘으로 딱이다.
알고리즘 정리노트: .leetcode(알고리즘 문제풀이 접근)
반응형
'알고리즘 풀이' 카테고리의 다른 글
.leetcode(24. Swap Nodes in Pairs) (0) | 2022.02.05 |
---|---|
.leetcode(846. Hand of Straights) (0) | 2022.02.05 |
.leetcode(515. Find Largest Value in Each Tree Row) (0) | 2022.01.30 |
.leetcode(11. Container With Most Water) (0) | 2022.01.30 |
.leetcode(841. Keys and Rooms) (0) | 2022.01.30 |