zoukankan      html  css  js  c++  java
  • [LeetCode]230. 二叉搜索树中第K小的元素(BST)(中序遍历)、530. 二叉搜索树的最小绝对差(BST)(中序遍历)

    题目230. 二叉搜索树中第K小的元素

    给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素。

    题解

    中序遍历BST,得到有序序列,返回有序序列的k-1号元素。

    代码

    class Solution {
        public int kthSmallest(TreeNode root, int k) {
            List<Integer> list = new LinkedList<>();
            inorder(root,list);
            return list.get(k-1);
        }
    
        public void inorder(TreeNode root, List<Integer> list){
            if(root == null){return;}
            inorder(root.left,list);
            list.add(root.val);
            inorder(root.right,list);
        }
    }
    

    题目 530. 二叉搜索树的最小绝对差

    给你一棵所有节点为非负值的二叉搜索树,请你计算树中任意两节点的差的绝对值的最小值。

    题解

    • 差值的绝对值最小,一定是中序遍历的相邻两节点。
    • 参数传pre节点值+中序遍历即可 //代码中之接将pre节点值作为变量更新

    代码

    ``
    class Solution {
    private int min=Integer.MAX_VALUE;
    private int preNodeVal = -1;
    public int getMinimumDifference(TreeNode root) {
    dfs(root);
    return min;
    }

    public void dfs(TreeNode root){
        if(root==null){
            return;
        }
    
        dfs(root.left);
        
        if(preNodeVal!=-1){
            min=Math.min(Math.abs(root.val-preNodeVal),min);
        }
        preNodeVal=root.val;
    
        dfs(root.right);
    }
    

    }
    ``

  • 相关阅读:
    Canvas技术
    线段树树状数组小结
    html5 Canvas元素
    ccpc网络邀请赛部分
    2020杭电多校
    JavaFx 绘制图形和文本(笔记)
    P4094 [HEOI2016/TJOI2016]字符串(二分+多种数据结构)
    L3-021 神坛 (30分) (计算几何最小三角形面积)
    10月28日G、H、I题
    出栈序列的合法性 (25分) 之树状数组玄学做法
  • 原文地址:https://www.cnblogs.com/coding-gaga/p/13046723.html
Copyright © 2011-2022 走看看