leetcode700-二叉搜索树中的搜索

leetcode 700
leetcode700-二叉搜索树中的搜索_第1张图片

思路

我们需要先了解一下二叉搜索树的特性:

  • 左子树的所有节点值 < 当前节点的值。
  • 右子树的所有节点值 > 当前节点的值。
  • 这个特性适用于树中的每个节点

那么根据这个特性,我们可以通过根节点的值和目标值的大小来判断后序的走向,如果根节点值 > 目标val,那么就只需向左遍历,如果根节点值 < 目标val,那么就只需向右遍历,如果相等,说明我们找到了目标节点,返回目标节点即可

实现

var searchBST = function (root, val) {
    while(root){
        if(root.val > val){
            root = root.left
        }else if(root.val < val){
            root = root.right
        }else {
            return root
        }
    }
    return root
};

你可能感兴趣的:(算法小课堂,leetcode,数据结构,算法,javascript)