• 113. Path Sum II


    https://leetcode.com/problems/path-sum-ii/

    本题大意:给定一个二叉树和一个值sum,求出所有从根节点到叶子节点的路径,使得路径所通过的节点值之和为sum。

    例如:给定二叉树:                  值为sum=22,所得结果应该为:

                                 

    解题思路:路径要满足的条件为:1、相加之和等于sum  2、最终应该到叶子结点。这两个也就是递归成功的返回条件。递归不成功的返回条件为:1、到达了叶子结点   2、但是相加之和不为sum。

    本题是先序遍历的递归:肯定是先考察当前结点,然后递归左子树,再递归右子树。

    注意:回溯问题。如果当前这颗子树的左右子树都遍历完了,那么应该回到它的父节点。

    代码如下:

     1 /**
     2  * Definition for a binary tree node.
     3  * struct TreeNode {
     4  *     int val;
     5  *     TreeNode *left;
     6  *     TreeNode *right;
     7  *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
     8  * };
     9  */
    10 class Solution {
    11 public:
    12     vector<vector<int>> pathSum(TreeNode* root, long long sum) {
    13         vector<int> v;
    14         vector<vector<int> > path;
    15         pathSumHelper(v, path, root, sum);
    16         
    17         return path;
    18     }
    19     
    20     void pathSumHelper(vector<int> & v, vector<vector<int> > & path, TreeNode* root, long long sum)
    21     {
    22         if(!root) return;
    23 
    24         v.push_back(root->val);
    25         int cur = sum - root->val;
    26         if(!root->left && !root->right)
    27         {
    28             if(cur == 0)
    29             {
    30                 path.push_back(v);
    31                 v.pop_back();
    32                 return;
    33             }
    34             else
    35             {
    36                 v.pop_back();
    37                 return;
    38             }
    39         }
    40         pathSumHelper(v, path, root->left, cur);
    41         pathSumHelper(v, path, root->right, cur);
    42         v.pop_back();
    43         return;
    44     }
    45 };
  • 相关阅读:
    数学之美:判断两个随机信号序列相似度
    为什么自己设计的嵌入式系统不如工业级产品稳定?
    由static来谈谈模块封装
    算法类书籍汇总
    Linux驱动:手把手教hello world驱动配置、编译进内核或为模块
    刨根问底之链表数据结构
    Redis进阶
    构建高可用的写服务
    再推荐 5 款私藏的优质 Chrome 插件
    MySQL-SQL优化
  • 原文地址:https://www.cnblogs.com/jingyuewutong/p/5584616.html
Copyright © 2020-2023  润新知