Re: [閒聊] 每日leetcode

作者: oin1104 (是oin的說)   2024-07-17 11:19:31
題目:
把要刪掉的節點刪掉
然後就會變成很多顆樹
你要把每顆樹的最上面的節點放進陣列
思路:
先跑去每棵樹看是不是要刪掉的數字
是的話就把他刪了
不然就繼續跑
如果要刪除的話
就會讓下面左右兩個節點都變成新的樹
所以要標記一下他們
讓他們塞進去陣列
這樣就好ㄌ
然後我一開始是用void寫
害我沒刪乾淨
機掰
```cpp
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode() : val(0), left(nullptr), right(nullptr) {}
* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), ri
ght(right) {}
* };
*/
class Solution {
public:
unordered_set<int> del;
vector<TreeNode*> res;
TreeNode* find(TreeNode* root, int isnew)
{
if(root==NULL)return NULL;
if(del.find(root->val) != del.end())
{
find(root->left,1);
find(root->right,1);
delete root;
return NULL;
}
root->left = find(root->left,0);
root->right = find(root->right,0);
if(isnew && root!=NULL)
{
res.push_back(root);
}
return root;
}
vector<TreeNode*> delNodes(TreeNode* root, vector<int>& to_delete)
{
del.clear();
res.clear();
for(int k : to_delete)del.insert(k);
find(root,1);
return res;
}
};
```
作者: SydLrio (狂嵐嘴砲)   2024-07-17 11:20:00
你有什麼用
作者: Furina (芙寧娜)   2024-07-17 11:22:00
我好崇拜你
作者: sustainer123 (caster)   2024-07-17 11:25:00
你有什麼用
作者: DJYOMIYAHINA (通通打死)   2024-07-17 11:58:00
我有什麼用

Links booklink

Contact Us: admin [ a t ] ucptt.com