티스토리 뷰
반응형
문제
https://leetcode.com/problems/count-good-nodes-in-binary-tree/description/
LeetCode - The World's Leading Online Programming Learning Platform
Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.
leetcode.com
풀이 코드
- DFS로 Tree를 순회한다.
- 각 Node의 값이 순회 경로 상에 있는 Node들의 최댓값보다 크면 최댓값을 변경하고 answer를 1 증가한다.
- Tree를 모두 순회하면 answer를 return한다.
/**
* 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;
* }
* }
*/
class Solution {
int answer; //good node의 개수를 담을 변수
public int goodNodes(TreeNode root) {
answer = 0; //0으로 초기화
DFS(root, root.val); //root는 항상 good node 이므로, 첫 max값으로 root node의 값을 넣는다.
return answer;
}
private void DFS(TreeNode node, int max) {
if (node == null) {
return;
} else {
if (node.val >= max) {
max = node.val;
answer++;
}
DFS(node.left, max);
DFS(node.right, max);
}
}
}
반응형
'코딩테스트 > LeetCode' 카테고리의 다른 글
Symmetric Tree (0) | 2023.10.10 |
---|---|
Two Sum IV - Input is a BST (0) | 2023.10.10 |
Find Elements in a Contaminated Binary Tree (0) | 2023.10.05 |
Reverse Odd Levels of Binary Tree (0) | 2023.10.04 |
All Paths From Source to Target (0) | 2023.10.03 |
반응형