博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode113. Path Sum II (思路及python解法)
阅读量:2241 次
发布时间:2019-05-09

本文共 1001 字,大约阅读时间需要 3 分钟。

Given a binary tree and a sum, find all root-to-leaf paths where each path's sum equals the given sum.

Note: A leaf is a node with no children.

Example:

Given the below binary tree and sum = 22,

5     / \    4   8   /   / \  11  13  4 /  \    / \7    2  5   1

Return:

[   [5,4,11,2],   [5,8,4,5]]

和112. Path Sum差别不大,多保存一下路径即可。

stack中保存的是当前节点,当前path所有节点的val(这是一个list),和当前path的sum。

class Solution:    def pathSum(self, root: TreeNode, sum: int) -> List[List[int]]:        if root is None: return root        stack=[(root, [root.val] ,root.val)]        final=[]        while stack:            root, lis, listsum=stack.pop(0)            if root.left is None and root.right is None:                if listsum==sum: final.append(lis)                else: continue            if root.left:                stack.append((root.left, lis+[root.left.val], listsum+root.left.val))            if root.right:                stack.append((root.right, lis+[root.right.val], listsum+root.right.val))        return final

 

转载地址:http://ldrbb.baihongyu.com/

你可能感兴趣的文章
PCA 的数学原理和可视化效果
查看>>
机器学习中常用评估指标汇总
查看>>
什么是 ROC AUC
查看>>
Bagging 简述
查看>>
详解 Stacking 的 python 实现
查看>>
简述极大似然估计
查看>>
用线性判别分析 LDA 降维
查看>>
用 Doc2Vec 得到文档/段落/句子的向量表达
查看>>
使聊天机器人具有个性
查看>>
使聊天机器人的对话更有营养
查看>>
一个 tflearn 情感分析小例子
查看>>
attention 机制入门
查看>>
手把手用 IntelliJ IDEA 和 SBT 创建 scala 项目
查看>>
GAN 的 keras 实现
查看>>
AI 在 marketing 上的应用
查看>>
Logistic regression 为什么用 sigmoid ?
查看>>
Logistic Regression 为什么用极大似然函数
查看>>
LightGBM 如何调参
查看>>
用 TensorFlow.js 在浏览器中训练神经网络
查看>>
梯度消失问题与如何选择激活函数
查看>>