700.二叉树中的搜索
/**
* Definition for a binary tree node.
* function TreeNode(val, left, right) {
* this.val = (val===undefined ? 0 : val)
* this.left = (left===undefined ? null : left)
* this.right = (right===undefined ? null : right)
* }
*/
/**
* @param {TreeNode} root
* @param {number} val
* @return {TreeNode}
*/
var searchBST = function (root, val) {
// 二叉树的特点,左节点<父节点<右节点
let cur = root
while (cur) {
if (val === cur.val) {
return cur
} else if (val < cur.val) {
cur = cur.left
} else if (val > cur.val) {
cur = cur.right
}
}
return null
};
// 递归
var searchBST = function (root, val) {
// 二叉树的特点,左节点<父节点<右节点
if (root === null) { // 递归终止条件
return null
} else if (val === root.val) {
return root
} else if (val < root.val) {
return searchBST(root.left, val)
} else if (val > root.val) {
return searchBST(root.right, val)
}
};