반응형
https://leetcode.com/problems/binary-tree-tilt/description/
자료구조 문제였습니다.
📕 풀이방법
📔 입력 및 초기화
왼쪽과 오른쪽 subtree의 누적합을 저장할 변수 sum을 선언 후 0으로 초기화해줍니다.
📔 풀이과정
1. 왼쪽과 오른쪽 subtree를 재귀적으로 순회해줍니다.
2. 왼쪽 tree와 오른쪽 tree의 현 node에 대한 절댓값을 저장해줍니다.
📔 정답 출력 | 반환
sum을 반환합니다.
📕 Code
📔 C++
/**
* 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 sum=0;
int makeTilt(TreeNode*root){
if(root == NULL) return 0;
int l = makeTilt(root -> left);
int r = makeTilt(root -> right);
sum += abs(l - r);
return root->val + l + r;
}
int findTilt(TreeNode* root) {
makeTilt(root);
return sum;
}
};
*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.
'Algorithm > 자료구조' 카테고리의 다른 글
(C++) - LeetCode (easy) 575. Distribute Candies (0) | 2023.04.27 |
---|---|
(C++) - LeetCode (easy) 572. Subtree of Another Tree (0) | 2023.04.26 |
(C++) - LeetCode (easy) 557. Reverse Words in a String III (0) | 2023.04.20 |
(C++) - LeetCode (easy) 543. Diameter of Binary Tree (0) | 2023.04.17 |
(C++) - LeetCode (easy) 530. Minimum Absolute Difference in BST (0) | 2023.04.15 |