zoukankan      html  css  js  c++  java
  • 第112题:路径总和

    一. 问题描述

    给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。

    说明: 叶子节点是指没有子节点的节点。

    示例: 

    给定如下二叉树,以及目标和 sum = 22,

                   5

                  /   

                4    8

                /      /

              11  13  4

               /           

             7    2          1

    返回 true, 因为存在目标和为 22 的根节点到叶子节点的路径 5->4->11->2。

    二. 解题思路

    本体步骤:采用深度优先遍历+递归的方法进行判断。

    步骤一:构建递归函数(root,已经积累的值val,目标值tacket)。

    步骤二:判断二:如果root是叶节点且val==tacket则返回true,如果root是非叶节点则接着进行将root转换成root.left和root.right节点进行递归,只要有一个为true,则返回true。

    步骤三:重复步骤二:直到遍历所有节点。

    三. 执行结果

    执行用时 :0 ms, 在所有 java 提交中击败了100.00%的用户

    内存消耗 :37.5 MB, 在所有 java 提交中击败了57.49%的用户

    四. Java代码

    class Solution {
        public boolean hasPathSum(TreeNode root, int sum) {
             if(root==null) {
                return false;
            }else {
                return getTree(root,root.val,sum);
            }
        }
        
        public boolean getTree(TreeNode root,int num,int tacket) {
            
            if(root.left==null&&root.right==null&&num==tacket) {
                return true;
            }
            
            if(root.left!=null&&getTree(root.left,num+root.left.val,tacket)) {
                return true;
            }
            
            if(root.right!=null&&getTree(root.right,num+root.right.val,tacket)) {
                return true;
            }
            
            return false;
            
            
        }
        
        
    }
  • 相关阅读:
    谈谈对 ”框架“ 这个概念的理解,以及它和库的区别
    npm 安装或更新模块失败的解决办法
    vs 2017/2015/2013 如何定位C++内存泄漏
    django 在python 3中提示 无法找到 MySQLDB
    合并表中数据
    pymysql
    mysql-错误备查
    tensorflow-gpu 使用的常见错误
    Ubuntu 安装 tensorflow-gpu + keras
    mysql 查看表结构方法
  • 原文地址:https://www.cnblogs.com/xiaobaidashu/p/11864455.html
Copyright © 2011-2022 走看看