Leetcode
2020.05.01 20:17

# 783. Minimum Distance Between BST Nodes

조회 수 768 추천 수 0 댓글 0
?

#### 단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

#### 단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

Given a Binary Search Tree (BST) with the root node `root`, return the minimum difference between the values of any two different nodes in the tree.

Example :

```Input: root = [4,2,6,1,3,null,null]
Output: 1
Explanation:
Note that root is a TreeNode object, not an array.

The given tree [4,2,6,1,3,null,null] is represented by the following diagram:

4
/   \
2      6
/ \
1   3

while the minimum difference in this tree is 1, it occurs between node 1 and node 2, also between node 3 and node 2.
```

Note:

1. The size of the BST will be between 2 and `100`.
2. The BST is always valid, each node's value is an integer, and each node's value is different.
3. This question is the same as 530: https://leetcode.com/problems/minimum-absolute-difference-in-bst/

```/**
* Definition for a binary tree node.
* public class TreeNode {
*     int val;
*     TreeNode left;
*     TreeNode right;
*     TreeNode(int x) { val = x; }
* }
*/
class Solution {
public int minDiffInBST(TreeNode root) {
List<Integer> list = new ArrayList<>();

queue.offer(root);
while(queue.size() > 0){
int size = queue.size();
for(int i=0; i<size; i++){
TreeNode node = queue.poll();
if(node.left != null){
queue.offer(node.left);
}
if(node.right != null){
queue.offer(node.right);
}

}

}

Collections.sort(list);

int minDiff = Integer.MAX_VALUE;
int prev = list.get(0);
for(int i=1; i<list.size(); i++){
int tmpDiff = Math.abs(prev - list.get(i));
if(tmpDiff < minDiff){
minDiff = tmpDiff;
}
prev = list.get(i);
}

return minDiff;
}
}```

```/**
* Definition for a binary tree node.
* public class TreeNode {
*     int val;
*     TreeNode left;
*     TreeNode right;
*     TreeNode(int x) { val = x; }
* }
*/
class Solution {
public int minDiffInBST(TreeNode root) {
List<Integer> list = new ArrayList<>();

traverseBST(root, list);

int minDiff = Integer.MAX_VALUE;
int prev = list.get(0);
for(int i=1; i<list.size(); i++){
int tmpDiff = Math.abs(prev - list.get(i));
if(tmpDiff < minDiff){
minDiff = tmpDiff;
}
prev = list.get(i);
}

return minDiff;
}

public void traverseBST(TreeNode node, List<Integer> list){
if(node == null){
return;
}

traverseBST(node.left, list);
traverseBST(node.right, list);
}
}```

?

 제목+내용제목내용댓글이름닉네임아이디태그
1. ### 720. Longest Word in Dictionary

Date2020.05.07 CategoryLeetcode Byhooni Views928
2. ### 225. Implement Stack using Queues

Date2020.05.05 CategoryLeetcode Byhooni Views781
3. ### 56. Merge Intervals

Date2020.05.05 CategoryLeetcode Byhooni Views729
4. ### 844. Backspace String Compare

Date2020.05.05 CategoryLeetcode Byhooni Views824
5. ### 222. Count Complete Tree Nodes

Date2020.05.05 CategoryLeetcode Byhooni Views756
6. ### 697. Degree of an Array

Date2020.05.05 CategoryLeetcode Byhooni Views818
7. ### 605. Can Place Flowers

Date2020.05.05 CategoryLeetcode Byhooni Views736
8. ### 724. Find Pivot Index

Date2020.05.05 CategoryLeetcode Byhooni Views751
9. ### 448. Find All Numbers Disappeared in an Array

Date2020.05.05 CategoryLeetcode Byhooni Views726
10. ### 628. Maximum Product of Three Numbers

Date2020.05.05 CategoryLeetcode Byhooni Views705
11. ### 532. K-diff Pairs in an Array

Date2020.05.04 CategoryLeetcode Byhooni Views764
12. ### 897. Increasing Order Search Tree

Date2020.05.04 CategoryLeetcode Byhooni Views725
13. ### 872. Leaf-Similar Trees

Date2020.05.04 CategoryLeetcode Byhooni Views719
14. ### 876. Middle of the Linked List

Date2020.05.04 CategoryLeetcode Byhooni Views710
15. ### 203. Remove Linked List Elements

Date2020.05.04 CategoryLeetcode Byhooni Views697
16. ### 997. Find the Town Judge

Date2020.05.02 CategoryLeetcode Byhooni Views761
17. ### 270. Closest Binary Search Tree Value

Date2020.05.01 CategoryLeetcode Byhooni Views694
18. ### 687. Longest Univalue Path

Date2020.05.01 CategoryLeetcode Byhooni Views756