什么网站做班服比较好,南京高新区建设规划局网站,上海建网站公司排名,做一个网站推广首先介绍一下什么是二叉搜索树。 二叉搜索树是一个有序树#xff1a;
若它的左子树不空#xff0c;则左子树上所有结点的值均小于它的根结点的值#xff1b;若它的右子树不空#xff0c;则右子树上所有结点的值均大于它的根结点的值#xff1b;它的左、右子树也分别为二叉…首先介绍一下什么是二叉搜索树。 二叉搜索树是一个有序树
若它的左子树不空则左子树上所有结点的值均小于它的根结点的值若它的右子树不空则右子树上所有结点的值均大于它的根结点的值它的左、右子树也分别为二叉搜索树 这就决定了二叉搜索树递归遍历和迭代遍历和普通二叉树都不一样。 就本题而言我们使用递归法遍历的顺序取决于节点的值的大小。而不是传统的前中后序。 大家可以结合我的代码以及注释理解此题。 代码及注释如下 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
public:TreeNode* searchBST(TreeNode* root, int val) {//创建一个变量存放递归函数的返回值TreeNode* result;//终止条件1遍历到空节点if(root NULL) return NULL;//终止条件2遍历到的节点值等与valif(root - val val) return root;//如果当前节点值较大则左递归if(root - val val){result searchBST(root - left,val);}//如果当前节点值较小则右递归if(root - val val){result searchBST(root - right,val);}return result;}
};