编写一个递归函数,传入参数为一颗二叉树和一个值k,如果k出现在树中返回true,否则返回false。相应的写出非递归函数
时间: 2023-06-01 10:03:55 浏览: 103
erchashu.rar_二叉树 遍历 非递归
递归函数:
```
bool findValue(TreeNode* root, int k) {
if (root == NULL) {
return false;
}
if (root->val == k) {
return true;
}
return findValue(root->left, k) || findValue(root->right, k);
}
```
非递归函数:
```
bool findValue(TreeNode* root, int k) {
if (root == NULL) {
return false;
}
stack<TreeNode*> s;
s.push(root);
while (!s.empty()) {
TreeNode* node = s.top();
s.pop();
if (node->val == k) {
return true;
}
if (node->right != NULL) {
s.push(node->right);
}
if (node->left != NULL) {
s.push(node->left);
}
}
return false;
}
```
阅读全文