标签:方法 col class tree root public ref 链接 else
题目描述链接:https://leetcode-cn.com/problems/search-in-a-binary-search-tree/
基本思路:等于返回,当前节点值大于搜索值从左子树搜索,小于从右子树搜索。以此可以用递归或迭代法实现,下面分别展示两种方法;
(1)采用递归的方法 LeetCode代码:
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: TreeNode* searchBST(TreeNode* root, int val) { if(!root){ return NULL; } if(root->val==val){ return root; } if(root->val>val){ return searchBST(root->left,val); } if(root->val<val){ 、 return searchBST(root->right,val); } return NULL; } };
(2)采用迭代的方法 LeetCode代码:
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: TreeNode* searchBST(TreeNode* root, int val) { while(root){ if(root->val==val){ return root; } else if(root->val>val){ root=root->left; } else{ root=root->right; } } return NULL; } };
标签:方法 col class tree root public ref 链接 else
原文地址:https://www.cnblogs.com/zzw-/p/13307673.html