C++|算法-二叉树(在二叉搜索树中寻找节点)

算法-二叉树:在二叉搜索树中寻找节点 确定一个节点是否在二叉搜索树中,如果在,则返回这个节点,如果不在,则返回NULL。树中没有重复元素。
【C++|算法-二叉树(在二叉搜索树中寻找节点)】方法一:递归

TreeNode* searchNode(TreeNode* root,int target){ if(root == NULL || root->val == target) return root; if(target < root->val){ return searchNode(root->left, target); //注意这里时是return,因为这里的递归不需要遍历整棵树,找到值返回就行 } if(target > root->val){ return searchNode(root->right, target); } return NULL; }

方法二:基于二叉搜索树的有序性,不需要深度遍历或者层序遍历就可以写出迭代策略。
TreeNode* searchNode(TreeNode* root,int target){ if(root == NULL || root->val == target) return root; while (!root) { if(target < root->val){ root = root->left; } else if(target > root->val){ root = root->right; } else{ return root; } } return NULL; }

    推荐阅读