zoukankan      html  css  js  c++  java
  • 判断一棵二叉树是否存在根节点出发到叶子节点值的和等于给定的数值的路径

    struct TreeNode{
      int val;
      TreeNode* left;
      TreeNode* right;
      TreeNode(int value):val(value),left(nullptr),right(nullptr){}
    };

    class SearchTreeNode
    {
    public:
      vector<bool> bu;
      bool searchRout(TreeNode*root,int target)
      {
        if(root==nullptr)
        {
          return false;
        }
         dfsRearch(root,target);
         cout<<boolalpha<<bu[0];
         cin.get();
        return bu[0];
      }

      bool dfsRearch(TreeNode*root,int target)
      {
        
        if(root==nullptr)
        {
          return false;
        }
        int sum = 0;
        sum+=root->val;

        if(sum==target)
        {
          bu.push_back(true);
          return true;
        }
        dfsRearch(root->left,target-(root->val));
        dfsRearch(root->right,target-(root->val));

      }

    };
    int main()
    {

       TreeNode* head = new TreeNode(5);
       TreeNode* sec = new TreeNode(4);
       TreeNode* thr = new TreeNode(11);
       TreeNode* fou = new TreeNode(7);
       TreeNode* fiv = new TreeNode(2);

       head->left = sec;
       sec->left = thr;
       thr->left = fou;
       thr->right = fiv;

       SearchTreeNode s;
       s.searchRout(head,22);
     }
  • 相关阅读:
    从头学pytorch(十二):模型保存和加载
    Python环境安装与配置
    PyCharm安装及使用
    Python包管理工具pip的基本使用
    LoadRunner安装破解
    正则表达式提取器使用
    TCPMon使用总结
    JMeter:全面的乱码解决方案
    Jmeter脚本两种录制方式
    监听器-【聚合报告】界面字段解析及计算方法概要说明
  • 原文地址:https://www.cnblogs.com/shiheyuanfang/p/14011856.html
Copyright © 2011-2022 走看看