精華區beta Marginalman 關於我們 聯絡資訊
872. Leaf-Similar Trees 題目: 兩棵樹的葉子是否相等 思路: 葉子 = 樹的最下面沒後續的節點 所以用 dfs 找沒有左右子節點的蒐集起來比較就好 Code: use std::cell::RefCell; use std::rc::Rc; impl Solution { pub fn leaf_similar( root1: Option<Rc<RefCell<TreeNode>>>, root2: Option<Rc<RefCell<TreeNode>>>, ) -> bool { fn get_leaf_vec(node: Option<Rc<RefCell<TreeNode>>>, leaves: &mut Vec<i32>) { if let Some(n) = node { let n = n.borrow(); if n.left == None && n.right == None { leaves.push(n.val); } else { get_leaf_vec(n.left.clone(), leaves); get_leaf_vec(n.right.clone(), leaves); } } } let mut l1 = Vec::new(); get_leaf_vec(root1, &mut l1); let mut l2 = Vec::new(); get_leaf_vec(root2, &mut l2); l1 == l2 } } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.248.143.163 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1750673437.A.C6E.html