LeetCode 1261. 在受污染的二叉树中查找元素C#
原题链接
中等
作者:
hpstory
,
2022-06-27 20:53:28
,
所有人可见
,
阅读 116
C# BFS代码
public class FindElements {
private Queue<TreeNode> queue = new Queue<TreeNode>();
private HashSet<int> set = new HashSet<int>();
public FindElements(TreeNode root) {
root.val = 0;
queue.Enqueue(root);
while (queue.Count > 0){
TreeNode current = queue.Dequeue();
set.Add(current.val);
if (current.left != null){
current.left.val = (current.val << 1) + 1;
queue.Enqueue(current.left);
}
if (current.right != null){
current.right.val = (current.val << 1) + 2;
queue.Enqueue(current.right);
}
}
}
public bool Find(int target) {
return set.Contains(target);
}
}
C# DFS代码
public class FindElements {
private HashSet<int> set = new HashSet<int>();
public FindElements(TreeNode root) {
root.val = 0;
DFS(root, 0);
}
private void DFS(TreeNode node, int value){
set.Add(value);
if (node.left != null){
DFS(node.left, 1 + (value << 1));
}
if (node.right != null){
DFS(node.right, 2 + (value << 1));
}
}
public bool Find(int target) {
return set.Contains(target);
}
}