二叉树查找值为x的结点
时间: 2023-06-10 08:03:52 浏览: 269
你好,很高兴为你解答这个问题。二叉树查找值为x的节点,可以采用递归或者非递归的方式进行实现。具体的实现方法可以参考以下代码:
递归实现:
```
struct TreeNode {
int val;
TreeNode *left, *right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
TreeNode* searchBST(TreeNode* root, int val) {
if (root == NULL || root->val == val) return root;
return (val < root->val) ? searchBST(root->left, val) : searchBST(root->right, val);
}
```
非递归实现:
```
struct TreeNode {
int val;
TreeNode *left, *right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
TreeNode* searchBST(TreeNode* root, int val) {
while (root != NULL && root->val != val) {
root = (val < root->val) ? root->left : root->right;
}
return root;
}
```
希望这个回答能对你有所帮助。如果你还有其他问题,可以继续问我。
阅读全文