Re: [閒聊] 每日leetcode
※ 引述《Rushia (早瀬ユウカの体操服 )》之銘言:
: https://leetcode.com/problems/delete-leaves-with-a-given-value/description/
: 1325. Delete Leaves With a Given Value
: 給你一個二元樹和一個數字 target,刪除所有葉子節點是 target 的節點,如果刪除後
: 新的葉子節點也是 target 也要刪除。
: 思路:
: 1.如果遇到葉子節點且是target就刪除他並返回null,每次檢查之間要先dfs,如果dfs
: 返回null就刪除子節點。
糞糙語言
每次遇到樹的題目都會爆行數
恨Rust
Node:
impl Solution {
pub fn remove_leaf_nodes(root: Option<Rc<RefCell<TreeNode>>>, target: i32)
-> Option<Rc<RefCell<TreeNode>>> {
fn remove_leaves(node: Option<Rc<RefCell<TreeNode>>>, target: i32)
-> Option<Rc<RefCell<TreeNode>>> {
if let Some(cur_node) = node {
let left = remove_leaves(cur_node.borrow().
left.clone(),
target);
let right = remove_leaves(cur_node.borrow().
right.clone(),
target);
{ //這個區塊符號用來在使用後釋放borrow,不然後面if會不給用
let mut cur_node_mut = cur_node.borrow_mut();
cur_node_mut.left = left;
cur_node_mut.right = right;
}
if cur_node.borrow().val == target &&
cur_node.borrow().left.is_none() &&
cur_node.borrow().right.is_none() {
return None;
}
else {
return Some(cur_node);
}
}
None
}
remove_leaves(root, target)
}
}
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.193.249.242 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1715956712.A.E2F.html
推
05/17 22:38,
1年前
, 1F
05/17 22:38, 1F
→
05/17 22:39,
1年前
, 2F
05/17 22:39, 2F
→
05/17 22:39,
1年前
, 3F
05/17 22:39, 3F
推
05/17 22:41,
1年前
, 4F
05/17 22:41, 4F
→
05/17 22:42,
1年前
, 5F
05/17 22:42, 5F
→
05/17 22:42,
1年前
, 6F
05/17 22:42, 6F
推
05/17 22:42,
1年前
, 7F
05/17 22:42, 7F
→
05/17 22:43,
1年前
, 8F
05/17 22:43, 8F
→
05/17 22:43,
1年前
, 9F
05/17 22:43, 9F
→
05/17 22:43,
1年前
, 10F
05/17 22:43, 10F
→
05/17 22:44,
1年前
, 11F
05/17 22:44, 11F
→
05/17 22:44,
1年前
, 12F
05/17 22:44, 12F
→
05/17 22:44,
1年前
, 13F
05/17 22:44, 13F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 238 之 1554 篇):