LeetCode--700.二叉搜索树中的搜索(二叉树)
2026/5/28 10:05:54 网站建设 项目流程

题目描述

给定二叉搜索树(BST)的根节点root和一个整数值val

你需要在 BST 中找到节点值等于val的节点。 返回以该节点为根的子树。 如果节点不存在,则返回null

示例 1:

输入:root = [4,2,7,1,3], val = 2 输出:[2,1,3]

示例 2:

输入:root = [4,2,7,1,3], val = 5 输出:[]

提示:

  • 树中节点数在[1, 5000]范围内
  • 1 <= Node.val <= 107
  • root是二叉搜索树
  • 1 <= val <= 107

代码

迭代法

/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNode(int val, TreeNode left, TreeNode right) { * this.val = val; * this.left = left; * this.right = right; * } * } */classSolution{publicTreeNodesearchBST(TreeNoderoot,intval){// 迭代法while(root!=null){// 二叉搜索树,左孩子的值小于根节点,右孩子的值大于根节点if(root.val>val)root=root.left;elseif(root.val<val)root=root.right;elsereturnroot;}returnnull;}}

递归法

/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNode(int val, TreeNode left, TreeNode right) { * this.val = val; * this.left = left; * this.right = right; * } * } */classSolution{publicTreeNodesearchBST(TreeNoderoot,intval){// 递归法if(root==null||root.val==val)returnroot;// 二叉搜索树,左孩子的值小于根节点,右孩子的值大于根节点if(root.val>val)returnsearchBST(root.left,val);if(root.val<val)returnsearchBST(root.right,val);returnnull;}}

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询