/** * 注意: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