1# Definition for a binary tree node.2# class TreeNode:3# def __init__(self, val=0, left=None, right=None):4# self.val = val5# self.left = left6# self.right = right7class Solution:8def dfs(self, node, path):9if not node:10return1112if not node.left and not node.right:13path += [node.val]14d = {}15for i in path.copy():16if i in d:17del d[i]18else:19d[i] = 120# print(d.items())21self.ans += 1 if len(d) <= 1 else 022return2324self.dfs(node.left, path + [node.val])25self.dfs(node.right, path + [node.val])2627def pseudoPalindromicPaths(self, root: Optional[TreeNode]) -> int:28self.ans = 029self.dfs(root, [])30return self.ans