783. 二叉搜尋樹節點最小距離
給定一個二叉搜尋樹的根節點 root,返回樹中任意兩節點的差的最小值。
示例:
輸入: root = [4,2,6,1,3,null,null]
輸出: 1
解釋:
注意,root是樹節點物件(TreeNode object),而不是陣列。
給定的樹 [4,2,6,1,3,null,null] 可表示為下圖:
4
/ \
2 6
/ \
1 3
最小的差值是 1, 它是節點1和節點2的差值, 也是節點3和節點2的差值。
思路:首先,建立一個List陣列用於儲存通過先序遍歷的二叉樹節點的值,然後對,List進行排序。最後通過Main方法,迴圈遍歷相鄰兩個元素之間的差值,獲取到最小的便是結果。
class Solution {
List<Integer> vals;
public int minDiffInBST(TreeNode root) {
vals = new ArrayList();
dfs(root);
Collections.sort(vals);
int ans = Integer.MAX_VALUE;
for (int i = 0; i < vals.size() - 1; ++i)
ans = Math.min(ans, vals.get(i+1) - vals.get(i));
return ans;
}
public void dfs(TreeNode node) {
if (node == null) return;
vals.add(node.val);
dfs(node.left);
dfs(node.right);
}
}
相關文章
- 二叉搜尋樹如何刪除節點
- Java中在二叉搜尋樹中查詢節點的父節點Java
- 程式碼隨想錄day18 || 530 二叉搜尋樹最小差,501 二叉搜尋樹眾數,236 二叉搜尋樹最近公共祖先
- Leedcode-二叉搜尋樹的最小絕對差
- 二叉搜尋樹
- 每日一練(26):二叉搜尋樹的第k大節點
- 二叉樹任意兩個節點間的最大距離(Java,LeetCode 543二叉樹的直徑 遞迴)二叉樹JavaLeetCode遞迴
- 劍指 Offer 54. 二叉搜尋樹的第k大節點 mark
- 二叉搜尋樹的第 k 個結點
- 二叉樹:距離最近的共同祖先二叉樹
- Day21 | 530.二叉搜尋樹的最小絕對差、501.二叉搜尋樹中的眾數 、236. 二叉樹的最近公共祖先二叉樹
- 從二分搜尋到二叉搜尋樹
- 力扣 - 劍指 Offer 54. 二叉搜尋樹的第k大節點力扣
- 程式碼隨想錄演算法訓練營第22天 |二叉樹part07:235. 二叉搜尋樹的最近公共祖先、701.二叉搜尋樹中的插入操作、450.刪除二叉搜尋樹中的節點演算法二叉樹
- Day20 | 654.最大二叉樹 、 617.合併二叉樹 、 700.二叉搜尋樹中的搜尋 98.驗證二叉搜尋樹二叉樹
- 二叉搜尋樹的2層結點統計
- 每日一題 - 劍指 Offer 54. 二叉搜尋樹的第k大節點每日一題
- 二叉搜尋樹的結構
- 有序表和搜尋二叉樹二叉樹
- javascript實現二叉搜尋樹JavaScript
- 二叉搜尋樹的操作集
- 程式碼隨想錄演算法訓練營第19天|235. 二叉搜尋樹的最近公共祖先 ,701.二叉搜尋樹中的插入操作,450.刪除二叉搜尋樹中的節點演算法
- 程式碼隨想錄演算法訓練營day19| 235. 二叉搜尋樹的最近公共祖先 701.二叉搜尋樹中的插入操作 450.刪除二叉搜尋樹中的節點演算法
- 程式碼隨想錄演算法訓練營day22 | leetcode 235. 二叉搜尋樹的最近公共祖先、701. 二叉搜尋樹中的插入操作、450. 刪除二叉搜尋樹中的節點演算法LeetCode
- 834. 樹中距離之和-困難-樹、圖、動態規劃、深度優先搜尋動態規劃
- 二叉搜尋樹和二叉樹的最近公共祖先二叉樹
- js實現完全排序二叉樹、二叉搜尋樹JS排序二叉樹
- Leetcode 700. 二叉搜尋樹中的搜尋(DAY 2)LeetCode
- 資料結構中的樹(二叉樹、二叉搜尋樹、AVL樹)資料結構二叉樹
- JavaScript 二叉搜尋樹以及實現翻轉二叉樹JavaScript二叉樹
- 二分搜尋樹系列之[ 節點刪除 (remove) ]REM
- 二分搜尋樹系列之「 節點刪除 (remove) 」REM
- 96. 不同的二叉搜尋樹
- 手寫AVL平衡二叉搜尋樹
- 資料結構-二叉搜尋樹資料結構
- 二叉搜尋樹的python實現Python
- 演算法篇 - 二叉搜尋樹演算法
- 【資料結構】二叉搜尋樹!!!資料結構