二叉排序树上找结点x,用java写
时间: 2024-02-19 07:58:35 浏览: 63
假设二叉排序树的结点定义如下:
```java
class TreeNode {
int val;
TreeNode left;
TreeNode right;
public TreeNode(int val) {
this.val = val;
}
}
```
可以使用递归或迭代的方法在二叉排序树上查找结点x。
递归实现:
```java
public TreeNode searchBST(TreeNode root, int x) {
if (root == null || root.val == x) {
return root;
}
if (x < root.val) {
return searchBST(root.left, x);
} else {
return searchBST(root.right, x);
}
}
```
迭代实现:
```java
public TreeNode searchBST(TreeNode root, int x) {
while (root != null && root.val != x) {
if (x < root.val) {
root = root.left;
} else {
root = root.right;
}
}
return root;
}
```
其中,递归实现通过比较当前结点的值和目标值来判断向左还是向右子树递归;迭代实现则通过一个循环,不断向左或向右子树移动,直到找到目标结点或者到达叶子结点为止。
阅读全文
相关推荐
![cpp](https://img-home.csdnimg.cn/images/20250102104920.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![txt](https://img-home.csdnimg.cn/images/20241231045021.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![ppt](https://img-home.csdnimg.cn/images/20241231044937.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231044937.png)