每日一题 1457. 二叉树中的伪回文路径(中等,DFS)

一句话,深度搜索所有路径,判断路径是否伪回文

python 复制代码
# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:
    def pseudoPalindromicPaths (self, root: Optional[TreeNode]) -> int:
        ans = 0
        def find(node, path, deep):
            nonlocal ans
            if node is None:
                return
            path[node.val] = 1 if path[node.val] == 0 else 0
            if node.left is None and node.right is None:
                c = 0
                for i in path:
                    if i == 1:
                        c += 1
                if deep % 2 == 0:
                    ans += 1 if c == 0 else 0
                else:
                    ans += 1 if c == 1 else 0
            find(node.left, path, deep + 1)
            find(node.right, path, deep + 1)
            path[node.val] = 0 if path[node.val] == 1 else 1
        
        find(root, [0] * 10, 1)
        return ans
相关推荐
Yorlen_Zhang1 分钟前
Python Tkinter Text 控件完全指南:从基础编辑器到富文本应用
开发语言·python·c#
xsyaaaan12 分钟前
代码随想录Day31动态规划:1049最后一块石头的重量II_494目标和_474一和零
算法·动态规划
HAPPY酷29 分钟前
C++ 和 Python 的“容器”对决:从万金油到核武器
开发语言·c++·python
Jay Kay1 小时前
GVPO:Group Variance Policy Optimization
人工智能·算法·机器学习
Epiphany.5561 小时前
蓝桥杯备赛题目-----爆破
算法·职场和发展·蓝桥杯
gpfyyds6661 小时前
Python代码练习
开发语言·python
YuTaoShao1 小时前
【LeetCode 每日一题】1653. 使字符串平衡的最少删除次数——(解法三)DP 空间优化
算法·leetcode·职场和发展
茉莉玫瑰花茶1 小时前
C++ 17 详细特性解析(5)
开发语言·c++·算法
cpp_25012 小时前
P10570 [JRKSJ R8] 网球
数据结构·c++·算法·题解
cpp_25012 小时前
P8377 [PFOI Round1] 暴龙的火锅
数据结构·c++·算法·题解·洛谷