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;
            
            
        }
        
        
    }
  • 相关阅读:
    UIScrollView设置滑动的距离
    iOS动画效果和实现
    cmd 编码 utf8
    详细的ifcfg-eth0配置详解
    Centos下 Nginx安装与配置
    linux安装目录
    utf8 和 UTF-8 的区别
    后台添加搜索功能讲解
    移动端 禁横向滚动
    PC端 $_SERVER 说明
  • 原文地址:https://www.cnblogs.com/xiaobaidashu/p/11864455.html
Copyright © 2011-2022 走看看