作者:
yam276 ('_')
2025-07-03 23:30:46700. Search in a Binary Search Tree
題目:
從一棵二元樹找一個數
思路:
二元樹的第一個題目
基本上只要知道二元樹的特性
也就是對於目前的 node.val
left.val < node.val
right.val > node.val
就知道怎麼做了
每次比較目標 val
node.val 比 val 大 就往 left 走
val 比 node.val 大 就往 right走
Code:
use std::rc::Rc;
use std::cell::RefCell;
impl Solution {
pub fn search_bst(root: Option<Rc<RefCell<TreeNode>>>, val: i32)
-> Option<Rc<RefCell<TreeNode>>> {
match root{
None=> None,
Some(n) => {
let node = n.borrow();
if node.val == val {
Some(n.clone())
}else if val < node.val{
Self::search_bst(node.left.clone(), val)
}else{
Self::search_bst(node.right.clone(), val)
}
}
}
}
}