二叉树的搜索
Posted zouma
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二叉树的搜索相关的知识,希望对你有一定的参考价值。
1.正常递归
1 TreeNode* searchBST(TreeNode* root, int val) 2 if (!root) 3 return nullptr; 4 if (val > root->val) 5 6 root = searchBST(root->right, val); 7 8 else if (val < root->val) 9 10 root = searchBST(root->left, val); 11 12 return root; 13
2.中序递归
1 TreeNode* searchBST(TreeNode* root, int val) 2 if (!root) 3 return nullptr; 4 TreeNode* res = searchBST(root->left, val); 5 if (res) 6 return res; 7 else if (root->val > val) 8 return nullptr; 9 else if (root->val == val) 10 return root; 11 TreeNode* res = searchBST(root->right, val); 12 return res; 13
3.迭代
1 TreeNode* searchBST(TreeNode* root, int val) 2 while (root) 3 4 if (root->val > val) 5 root = root->left; 6 else if (root->val < val) 7 root = root->right; 8 else 9 return root; 10 11 return root; 12
以上是关于二叉树的搜索的主要内容,如果未能解决你的问题,请参考以下文章