반응형
https://leetcode.com/problems/minimum-distance-between-bst-nodes/description/
중위순회 문제였습니다.
📕 풀이방법
📔 입력 및 초기화
vector nums를 선언해줍니다.
📔 풀이과정
1. 중위순회로 nums에 원소를 담습니다.
2. 오름차순으로 nums를 정렬합니다.
3. 정렬된 node는 이웃의 차이가 최소임이 보장되므로 해당 값을 ret에 저장 후 반환합니다.
📕 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:
vector<int> nums;
void inorder(TreeNode* root) {
if(root == NULL) return;
inorder(root->left);
nums.push_back(root->val);
inorder(root->right);
}
int minDiffInBST(TreeNode* root) {
inorder(root);
sort(nums.begin(), nums.end());
int ret = 0x3f3f3f3f;
for(int i = 0; i < nums.size()-1; i++) {
ret = min(ret, nums[i+1] - nums[i]);
}
return ret;
}
};
*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.
'Algorithm > 자료구조' 카테고리의 다른 글
(C++) - LeetCode (easy) 387. First Unique Character in a String (0) | 2023.02.27 |
---|---|
(C++) - LeetCode (easy) 383. Ransom Note (2) | 2023.02.24 |
(C++) - LeetCode (easy) 234. Palindrome Linked List (0) | 2023.01.19 |
(C++) - LeetCode (easy) 232. Implement Queue using Stacks (0) | 2023.01.18 |
(C++) - LeetCode (easy) 226. Invert Binary Tree (0) | 2023.01.11 |