首页 > 其他分享 >二叉树寻找最k小值

二叉树寻找最k小值

时间:2023-01-27 00:22:24浏览次数:37  
标签:node right const 寻找 value 小值 二叉树 null left

/** * 注意:left/right值若没有显示设置为null,值即为undefined * 在调用二叉树前、中、后序遍历方法时,由于参数设置了默认值(tree) * 所以进入了死循环 */

const tree = {
    value: 5,
    left: {
        value: 3,
        left: {
            value: 2,
            left: null,
            right: null
        },
        right: {
            value: 4,
            left: null,
            right: null
        }
    },
    right: {
        value: 7,
        left: {
            value: 6,
            left: null,
            right: null
        },
        right: {
            value: 8,
            left: null,
            right: null
        }
    }
}
/** * 中序遍历 * left -> root -> right */
const inOrderTraverse = (node = tree, callback = () => {}) => {
    if(!node) return
    inOrderTraverse(node.left)
    callback(node.value)
    inOrderTraverse(node.right)
}

  结果数组

const orderTraverse = []

  

const getKthTreeValue = (node = tree, k = 3) => {
    inOrderTraverse(node, (value) => orderTraverse.push(value))
    return orderTraverse[k - 1]
}

  

标签:node,right,const,寻找,value,小值,二叉树,null,left
From: https://www.cnblogs.com/zhenjianyu/p/17068434.html

相关文章

  • Python int 最大最小值
    Pythonint最大最小值若有错误还请大佬指出Answer不多说,先上答案:注:这是理论上\(\mid\):这个表示整除e.g.:\(5\mid2=2\)max32位\[2^{32\times(2^{31}-1)\mid......
  • 代码随想录算法训练营第14天 | 二叉树的递归遍历
    144.二叉树的前序遍历94.二叉树的中序遍历145.二叉树的后序遍历文章:代码随想录(programmercarl.com)视频:每次写递归都要靠直觉?这次带你学透二叉树的递归遍历!|Lee......
  • 力扣101 对称二叉树
    题目:给你一个二叉树的根节点root,检查它是否轴对称。示例:输入:root=[1,2,2,3,4,4,3]输出:true思路:  对于二叉树是否对称,要比较的是根节点的左子树与......
  • 刷刷刷 Day 21 | 236. 二叉树的最近公共祖先
    236.二叉树的最近公共祖先LeetCode题目要求给定一个二叉树,找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树T的两个节点p、q,......
  • 刷刷刷 Day 20 | 617. 合并二叉树
    617.合并二叉树LeetCode题目要求给你两棵二叉树:root1和root2。想象一下,当你将其中一棵覆盖到另一棵之上时,两棵树上的一些节点将会重叠(而另一些不会)。你需要将这两......
  • 刷刷刷 Day 20 | 654. 最大二叉树
    654.最大二叉树LeetCode题目要求给定一个不重复的整数数组 nums。 最大二叉树 可以用下面的算法从 nums递归地构建:创建一个根节点,其值为 nums中的最大值。递......
  • 二叉树TwT
    L2-011玩转二叉树给定一棵二叉树的中序遍历和前序遍历,请你先将树做个镜面反转,再输出反转后的层序遍历的序列。所谓镜面反转,是指将所有非叶结点的左右孩子对换。这里假设......
  • 刷刷刷 Day 18 | 106. 从中序与后序遍历序列构造二叉树
    106.从中序与后序遍历序列构造二叉树LeetCode题目要求给定两个整数数组inorder和postorder,其中inorder是二叉树的中序遍历,postorder是同一棵树的后序遍历,请你构......
  • 如何高效寻找素数
    本文首发:如何用算法高效寻找素数?读完本文,你不仅学会了算法套路,还可以顺便解决如下题目:204.计数质数(简单)-----------素数的定义看起来很简单,如果一个数如果只能被1和......
  • 二叉树
    二叉树是由n个节点构成,它有可能是空树,也有可能是非空树。对于非空树,有且仅有一个根节点,和左右两个不相交的左子树和右子树左子树和右子树有左右之分,不可颠倒......