[闲聊] 每日leetcode 75 - Day23

楼主: yam276 ('_')   2025-07-03 23:30:46
700. 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)
}
}
}
}
}

Links booklink

Contact Us: admin [ a t ] ucptt.com