博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[LeetCode]Path Sum
阅读量:2235 次
发布时间:2019-05-09

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

思路:
深度搜索(这里采用 回溯法)
1,先决条件:找到树根
2,不变式:遍历子node,传递sum和当前和 curSum
3,结束条件:node没有子节点,判断sum 是否等于curSum
4,临界条件:树为空

很简单,一遍过。 

/** * Definition for a binary tree node. * struct TreeNode { *     int val; *     TreeNode *left; *     TreeNode *right; *     TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public:    bool hasPathSum(TreeNode* root, int sum) {        if (root == NULL){            return false;        }        return bfs(root, sum, 0);    }    bool bfs(TreeNode* node, int sum, int curSum){        if(node->left == NULL && node->right == NULL){            return sum == (curSum + node->val);        }else{            if (node->left != NULL){                if ( bfs(node->left, sum, curSum + node->val) ){                    return true;                }            }            if (node->right != NULL){                if ( bfs(node->right, sum, curSum + node->val) ){                    return true;                }            }        }    }};

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

你可能感兴趣的文章
机器学习算法应用中常用技巧-1
查看>>
决策树的python实现
查看>>
了解 Sklearn 的数据集
查看>>
如何选择优化器 optimizer
查看>>
一文了解强化学习
查看>>
CART 分类与回归树
查看>>
seq2seq 的 keras 实现
查看>>
seq2seq 入门
查看>>
什么是 Dropout
查看>>
用 LSTM 做时间序列预测的一个小例子
查看>>
用 LSTM 来做一个分类小问题
查看>>
详解 LSTM
查看>>
按时间轴简述九大卷积神经网络
查看>>
详解循环神经网络(Recurrent Neural Network)
查看>>
为什么要用交叉验证
查看>>
用学习曲线 learning curve 来判别过拟合问题
查看>>
用验证曲线 validation curve 选择超参数
查看>>
用 Grid Search 对 SVM 进行调参
查看>>
用 Pipeline 将训练集参数重复应用到测试集
查看>>
PCA 的数学原理和可视化效果
查看>>