zoukankan      html  css  js  c++  java
  • Java实现 LeetCode 783 二叉搜索树节点最小距离(遍历)

    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的差值。

    注意:

    二叉树的大小范围在 2 到 100。
    二叉树总是有效的,每个节点的值都是整数,且不重复。
    本题与 530:https://leetcode-cn.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 {
        Integer prev = null, ans = Integer.MAX_VALUE;
    
        public int minDiffInBST(TreeNode root) {
            test(root);
            return ans;
        }
    
        public void test(TreeNode treeNode) {
            if (treeNode == null) {
                return;
            }
            test(treeNode.left);
            if (prev != null) {
                ans = Math.min(ans, treeNode.val - prev);
            }
            prev = treeNode.val;
            test(treeNode.right);
        }
    }
    
  • 相关阅读:
    道路和航线(最短路SPFA优化算法)
    走廊泼水节 (最大生成树)
    大数板子
    强连通分量
    path(CCPC网络赛)
    Plug It In!(网络流板子)
    链式前向星上DFS(Pants On Fire)
    手环定理
    (x+y)%p==b ;(x*y)%p==c; 知道b,c,求x,y;
    牛客多校第六场-H-Pair
  • 原文地址:https://www.cnblogs.com/a1439775520/p/13074566.html
Copyright © 2011-2022 走看看