看板 Marginalman
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) } } } } } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.193.249.242 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1751556648.A.B39.html