Leetcode刷题100天—112. 路径总和( 二叉树)—day33

Posted 神的孩子都在歌唱

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode刷题100天—112. 路径总和( 二叉树)—day33相关的知识,希望对你有一定的参考价值。

前言:

作者:神的孩子在歌唱

大家好,我叫运智

112. 路径总和

难度简单660收藏分享切换为英文接收动态反馈

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

叶子节点 是指没有子节点的节点。

示例 1:

输入:root = [5,4,8,11,null,13,4,7,2,null,null,null,1], targetSum = 22
输出:true

示例 2:

输入:root = [1,2,3], targetSum = 5
输出:false

示例 3:

输入:root = [1,2], targetSum = 0
输出:false

提示:

  • 树中节点的数目在范围 [0, 5000]
  • -1000 <= Node.val <= 1000
  • -1000 <= targetSum <= 1000
package 二叉树;

import java.util.LinkedList;
import java.util.Queue;

public class _112_路径总和 {
//	可以采用广度优先搜索
    public boolean hasPathSum(TreeNode root, int targetSum) {
    	if (root==null) {
			return false;
		}
//    	定义存入节点的队列
        Queue<TreeNode> queNode = new LinkedList<TreeNode>();
//        入队顶元素
        queNode.offer(root);
        while (!queNode.isEmpty()) {
//        	出队
            TreeNode now = queNode.poll();
//            如果遍历到了底部
            if (now.left == null && now.right == null) {
                if (now.val == targetSum) {
                    return true;
                }
                continue;
            }
//            遍历左节点
            if (now.left != null) {
            	now.left.val+=now.val;
                queNode.offer(now.left);
            }
//           遍历右节点
            if (now.right != null) {
            	now.right.val += now.val;
                queNode.offer(now.right);
            }
        }
        return false;
    }
}

本人csdn博客:https://blog.csdn.net/weixin_46654114

转载说明:跟我说明,务必注明来源,附带本人博客连接。

以上是关于Leetcode刷题100天—112. 路径总和( 二叉树)—day33的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode Java刷题笔记—112. 路径总和

LeetCode刷题模版:111 - 120

LeetCode刷题模版:111 - 120

LeetCode-112-路径总和

leetcode-----112. 路径总和

Leetcode112.路径总和