https://leetcode.com/problems/count-good-nodes-in-binary-tree/
Count Good Nodes in Binary Tree - LeetCode
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
[풀이]
1. 재귀를 이용해서 이진트리의 모든 노드들을 순회한다.
2. 파라미터 v는 현재 node의 부모 node들의 value 중에 가장 큰 value를 의미한다.
3. 현재 노드의 value가 v보다 크면 return 값에 1을 더해 주어 결과값에 추가될 수 있도록 한다.
4. root는 무조건 추가되어야 하므로 main에서 -100000을 v에 넣어준다.
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} * TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {} * }; */ class Solution { public: int search(TreeNode* node, int v) { if (node == nullptr) return 0; int ret = 0; int cur_max = v; if (node->val >= v) { cur_max = node->val; ret++; } ret += search(node->left, cur_max); ret += search(node->right, cur_max); return ret; } int goodNodes(TreeNode* root) { return search(root, -100000); } };
https://github.com/has2/Algorithm/blob/master/leetcode/1448.cpp
'Problem-Solving > LeetCode' 카테고리의 다른 글
[Leetcode] 419. Battleships in a Board (0) | 2020.07.28 |
---|---|
[Leetcode] 1111. Maximum Nesting Depth of Two Valid Parentheses Strings (C++) (0) | 2020.07.14 |
[Leetcode] 1387. Sort Integers by The Power Value (C++) (0) | 2020.07.07 |
[Leetcode] 1476. Subrectangle Queries (0) | 2020.06.21 |