1. 程式人生 > >Path Sum:判斷求根節點到葉子節點求和大小

Path Sum:判斷求根節點到葉子節點求和大小

Given a binary tree and a sum, determine if the tree has a root-to-leaf path such that adding up all the values along the path equals the given sum.

Note: A leaf is a node with no children.

Example:

Given the below binary tree and sum = 22,

      5
     / \
    4   8
   /   / \
  11  13  4
 /  \      \
7    2
1

return true, as there exist a root-to-leaf path 5->4->11->2 which sum is 22.

思路:標準的考察二叉樹遍歷題目,深度優先遍歷,沒什麼好說的。

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
class Solution {
    
    public boolean dfs(TreeNode node , int sum ,int tempSum){
        if(node == null) return false;
        if(node.left == null && node.right == null){
            if(tempSum + node.val == sum){
                return true;
            } else{
                return false;
            }
        }
        return dfs(node.left,sum,tempSum+node.val)||dfs(node.right,sum,tempSum+node.val);
    }
    
    public boolean hasPathSum(TreeNode root, int sum) {
        if( root == null) return false;
        return dfs(root,sum,0);
    }
}

相關推薦

Path Sum:判斷節點葉子節點求和大小

Given a binary tree and a sum, determine if the tree has a root-to-leaf path such that adding up all

LeetCode 129. 葉子節點數字之和(Sum Root to Leaf Numbers)

更新 truct 個數 遍歷 null 它的 etc col tco 題目描述 給定一個二叉樹,它的每個結點都存放一個 0-9 的數字,每條從根到葉子節點的路徑都代表一個數字。 例如,從根到葉子節點路徑 1->2->3 代表數字 123。 計算從根到葉子節

【LeetCode】#129葉子節點數字之和(Sum Root to Leaf Numbers)

【LeetCode】#129求根到葉子節點數字之和(Sum Root to Leaf Numbers) 題目描述 給定一個二叉樹,它的每個結點都存放一個 0-9 的數字,每條從根到葉子節點的路徑都代表一個數字。 例如,從根到葉子節點路徑 1->2->3 代表數字 123。

leetcode 129. 葉子節點數字之和

為什麽 計算 int 布爾 給定 vector ini treenode 二叉樹 給定一個二叉樹,它的每個結點都存放一個 0-9 的數字,每條從根到葉子節點的路徑都代表一個數字。 例如,從根到葉子節點路徑 1->2->3 代表數字 123。 計算從根到葉子節點生

LeetCode 897 129 98 遞增順序查詢樹 葉子節點之和 驗證二叉樹 (樹,深度優先搜尋)

1.遞增順序查詢樹 難度:簡單 給定一個樹,按中序遍歷重新排列樹,使樹中最左邊的結點現在是樹的根,並且每個結點沒有左子結點,只有一個右子結點。 示例 : 輸入:[5,3,6,2,4,null,8,1,null,null,null,7,9] 5 / \

Leetcode 129 葉子節點數字之和(遞迴)

給定一個二叉樹,它的每個結點都存放一個 0-9 的數字,每條從根到葉子節點的路徑都代表一個數字。 例如,從根到葉子節點路徑 1->2->3 代表數字 123。 計算從根到葉子節點生成的所有數字之和。 說明: 葉子節點是指沒有子節點的節點。 示

Leetcode:129.葉子節點數字之和

給定一個二叉樹,它的每個結點都存放一個 0-9 的數字,每條從根到葉子節點的路徑都代表一個數字。 例如,從根到葉子節點路徑 1->2->3 代表數字 123。 計算從根到葉子節點生成的所有數字之和。 說明: 葉子節點

129. 葉子節點數字之和(中等,樹)

給定一個二叉樹,它的每個結點都存放一個 0-9 的數字,每條從根到葉子節點的路徑都代表一個數字。計算從根到葉子節點生成的所有數字之和。 示例 1: 輸入: [1,2,3] 1 / \ 2 3 輸出: 25 思路:先求出每條路徑上的數字組成的字串

LeetCode129. 葉子節點數字之和

給定一個二叉樹,它的每個結點都存放一個 0-9 的數字,每條從根到葉子節點的路徑都代表一個數字。 例如,從根到葉子節點路徑 1->2->3 代表數字 123。 計算從根到葉子節點生成的所

129.葉子節點數字之和

給定一個二叉樹,它的每個結點都存放一個 0-9 的數字,每條從根到葉子節點的路徑都代表一個數字。 例如,從根到葉子節點路徑 1->2->3 代表數字 123。 計算從根到葉子節點生成的所有數字之和。 說明: 葉子節點是指沒有子節點的節點。 示例 1: 輸

LeetCode-129.葉子節點數字之和(相關話題:深度優先)

給定一個二叉樹,它的每個結點都存放一個 0-9 的數字,每條從根到葉子節點的路徑都代表一個數字。 例如,從根到葉子節點路徑 1->2->3 代表數字 123。 計算從根到葉子節點生成的所有數字之和。 說明: 葉子節點是指沒有子節點的節點。 示例 1: 輸入: [1,2

(LeetCode 129)葉子節點數字之和 [簡單DFS ]

129. 求根到葉子節點數字之和 給定一個二叉樹,它的每個結點都存放一個 0-9 的數字,每條從根到葉子節點的路徑都代表一個數字。 例如,從根到葉子節點路徑 1->2->3 代表數字 123。 計算從根到葉子節點生成的所有數字之和。 說明: 葉子節點是指沒有子節點

【LeetCode 中等題】59-葉子節點數字之和

題目描述:給定一個二叉樹,它的每個結點都存放一個 0-9 的數字,每條從根到葉子節點的路徑都代表一個數字。例如,從根到葉子節點路徑 1->2->3 代表數字 123。計算從根到葉子節點生成的所有數字之和。 說明: 葉子節點是

[LeetCode] Sum Root to Leaf Numbers 到葉節點數字之和

Given a binary tree containing digits from 0-9 only, each root-to-leaf path could represent a number. An example is the root-to-leaf path 1->2->3

二叉樹第K層的葉子節點的個數(假設節點是第一層)

演算法思想:採用佇列結構按層次遍歷,遍歷K層時記錄葉子的個數   int LeafKlevel(BiTree bt, int k){ //求二叉樹bt的第k(k >1)層上葉子的節點個數 if(bt == NULL || k < 1)

節點葉子節點的所有路徑組成的數的和

問題:給定一顆二叉樹,節點的值只能為0~9中的一個,每一個從根節點到葉子節點的路徑代表一個數,比如,有一個從根節點到葉子節點的路徑是 1->2->3,則這個路徑代表數字是123。求出從根節點到所有葉子節點的路徑所代表數字的和是多少。 再比如,有如下二叉樹:

c語言二叉樹的建立,遍歷,的深度,葉子節點的個數

#include <stdio.h> #include <stdlib.h> typedef struct node { char data; struct node *rchild,*lchild; }node,*linklist;

Binary Tree Paths:所有節點葉子節點的二叉樹路徑

Given a binary tree, return all root-to-leaf paths. For example, given the following binary tree: 1 / \ 2 3 \ 5 All r

LeetCode142. Linked List Cycle||(環形連結串列)——— 判斷連結串列是否有環以及其入環節點

struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(nullptr) {} }; //判斷連結串列是否有環 //方法: //1、空間複雜度n:使用set集合儲存每一個節點,判斷是否有重複 //2

easyui tree 判斷是否是葉子節點

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!