Leetcode
2020.05.01 20:17
783. Minimum Distance Between BST Nodes
조회 수 838 추천 수 0 댓글 0
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:
- The size of the BST will be between 2 and
100
. - The BST is always valid, each node's value is an integer, and each node's value is different.
- 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) { Queue<TreeNode> queue = new LinkedList<>(); 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); } list.add(node.val); } } 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) { Queue<TreeNode> queue = new LinkedList<>(); 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); list.add(node.val); traverseBST(node.right, list); } }
[문제] https://leetcode.com/problems/minimum-distance-between-bst-nodes/
번호 | 분류 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|---|
77 | Leetcode | [todo] 687. Longest Univalue Path | hooni | 2020.05.01 | 268 |
76 | Programmers |
team game
![]() |
hooni | 2020.04.30 | 0 |
75 | Programmers |
hashmap
![]() |
hooni | 2020.04.30 | 0 |
74 | Programmers |
fib
![]() |
hooni | 2020.04.30 | 0 |
73 | Leetcode | 997. Find the Town Judge | hooni | 2020.05.02 | 819 |
72 | Leetcode |
994. Rotting Oranges
![]() |
hooni | 2020.04.14 | 235 |
71 | Leetcode |
993. Cousins in Binary Tree
![]() |
hooni | 2020.04.30 | 285 |
70 | Leetcode | 973. K Closest Points to Origin | hooni | 2020.04.15 | 241 |
69 | Leetcode | 946. Validate Stack Sequences | hooni | 2020.04.08 | 214 |
68 | Leetcode | 937. Reorder Data in Log Files | hooni | 2020.04.25 | 235 |
67 | Leetcode | 897. Increasing Order Search Tree | hooni | 2020.05.04 | 790 |
66 | Leetcode | 876. Middle of the Linked List | hooni | 2020.05.04 | 773 |
65 | Leetcode |
872. Leaf-Similar Trees
![]() |
hooni | 2020.05.04 | 779 |
64 | Leetcode | 852. Peak Index in a Mountain Array | hooni | 2020.04.28 | 239 |
63 | Leetcode | 844. Backspace String Compare | hooni | 2020.05.05 | 880 |
» | Leetcode | 783. Minimum Distance Between BST Nodes | hooni | 2020.05.01 | 838 |
61 | Leetcode | 763. Partition Labels | hooni | 2020.04.17 | 304 |
60 | Leetcode | 75. Sort Colors | hooni | 2020.04.14 | 205 |
59 | Leetcode | 731. My Calendar II | hooni | 2020.04.15 | 220 |
58 | Leetcode | 729. My Calendar I | hooni | 2020.04.15 | 198 |