1457. Pseudo-Palindromic Paths in a Binary Tree
Solution
用物件來進行判別結果時,要有backtrace的動作,否則前個子樹的結果物件會影響到另一個子樹的判別結果
int count = 0;
public int pseudoPalindromicPaths (TreeNode root) {
Set<Integer> set = new HashSet<>();
dfs(set, root);
return count;
}
public void dfs(Set<Integer> set, TreeNode node){
if(node == null) return;
if(set.contains(node.val)){
set.remove(node.val);
}else{
set.add(node.val);
}
if(node.left == null && node.right == null)
{
if(set.size() <= 1){
count++;
}
}
dfs(set, node.left);
dfs(set, node.right);
//backTrace
if(set.contains(node.val)){
set.remove(node.val);
}else{
set.add(node.val);
}
}
Last updated
Was this helpful?