zoukankan      html  css  js  c++  java
  • 二叉树中和为某个值得路径

    题目描述

    输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。
    实现:
    class Solution {
            vector<int> in ;
            vector<vector<int>> out ;
    public:
        vector<vector<int> > FindPath(TreeNode* root,int expectNumber) {
            if(!root)
                return out;
            in.push_back(root->val);
            if(root->left == 0 && root->right == 0 && root->val == expectNumber)
            {
                out.push_back(in);
            }    
            if(root->left)
            {
                FindPath(root->left,expectNumber - root->val);
                if(!in.empty())
                    in.pop_back();
             }   
            if(root->right)
            {
                FindPath(root->right,expectNumber - root->val);
                if(!in.empty())
                    in.pop_back();
            }
            return out;
         }
    };

    样例做法:

    class Solution {
            vector<int> in ;
            vector<vector<int>> out ;
    public:
        vector<vector<int> > FindPath(TreeNode* root,int expectNumber) {
            if(!root)
                return out;
            in.push_back(root->val);
            if(root->left == 0 && root->right == 0 && root->val == expectNumber)
            {
                out.push_back(in);
            }    
            if(root->left)
            {
                FindPath(root->left,expectNumber - root->val);
             }   
            if(root->right)
            {
                FindPath(root->right,expectNumber - root->val);
            }
            if(!in.empty())
                in.pop_back();
            return out;
         }
    };

    本来还以为样例不对,

        3

      5    8

    2  6  7  9

    本来认为5为根时遍历完左右没有弹出5,后来终于想通,忘记了以5为根时后面还会走if弹出。

  • 相关阅读:
    AtCoder Regular Contest 077
    FWT模板
    hackerrank Alex对战Fedor
    hackerrank 训练军队
    hackerrank Diameter Minimization
    hackerrank Ticket
    java基础 布局管理器
    java基础 super 子类调用父类
    java基础 字符串 “==” 和 “equals” 比较
    java基础 作业(一)
  • 原文地址:https://www.cnblogs.com/Lune-Qiu/p/8729296.html
Copyright © 2011-2022 走看看