来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/search-in-a-binary-search-tree 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

给定二叉搜索树(BST)的根节点 root 和一个整数值 val。 你需要在 BST 中找到节点值等于 val 的节点。 返回以该节点为根的子树。 如果节点不存在,则返回 null 。

解答

前序遍历查找

  1. /**
  2. * Definition for a binary tree node.
  3. * function TreeNode(val, left, right) {
  4. * this.val = (val===undefined ? 0 : val)
  5. * this.left = (left===undefined ? null : left)
  6. * this.right = (right===undefined ? null : right)
  7. * }
  8. */
  9. /**
  10. * @param {TreeNode} root
  11. * @param {number} val
  12. * @return {TreeNode}
  13. */
  14. var searchBST = function(root, val) {
  15. let ret = null;
  16. function traverse (node) {
  17. if (!node) return;
  18. if (node.val === val) {
  19. ret = node;
  20. return;
  21. }
  22. if (!ret) {
  23. node.left && traverse(node.left);
  24. node.right && traverse(node.right);
  25. }
  26. }
  27. traverse(root);
  28. return ret;
  29. };