1. 程式人生 > >LeetCode : 求二叉樹的最短路徑

LeetCode : 求二叉樹的最短路徑

Given a binary tree, find its minimum depth.The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf node.

意思就是求一個二叉樹的最短路徑( ̄▽ ̄)"

/**
 * Definition for binary tree
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
public class Solution {
    public int run(TreeNode root) {
        if(root == null) 
            return 0;
        
        if(root.left == null && root.right == null)
            return 1;
        
        if(root.left == null)
            return run(root.right) + 1;
        
        if(root.right == null)
            return run(root.left) + 1;
        
        return Math.min(run(root.left) , run(root.right)) + 1;
    }
}


相關推薦

leetcode路徑

做這個題首先要明白path的意思,即為從一個節點到另外一個節點無環路徑。 然後要注意到有可能有負值節點。 然後注意到二叉樹大部分題都是遞迴,這個題當然也可以,因為要求的是從一個節點到另外一個節點的路徑和, 很容易想到即一個節點的左子樹最長路徑和右子樹最長路徑加上本節點的值。

LeetCode : 路徑

Given a binary tree, find its minimum depth.The minimum depth is the number of nodes along the short

LeetCode 124. Binary Tree Maximum Path Sum(路徑和)

Given a binary tree, find the maximum path sum. For this problem, a path is defined as any sequence of nodes from some starting node

Leetcode 124 Binary Tree Maximum Path Sum 路徑

原題連結 題目描述 Given a binary tree, find the maximum path sum. 給出一棵二叉樹,計算其最大路徑和。 The path may start and end at any node in the t

小深度

als 最小 log root roo null mat dep tde 1.求二叉樹最大深度 public int maxDepth(TreeNode root) { if(root==null){ return 0;

LeetCode小深度(簡單

給定一個二叉樹,找出其最小深度。 最小深度是從根節點到最近葉子節點的最短路徑上的節點數量。 說明: 葉子節點是指沒有子節點的節點。 示例: 給定二叉樹 [3,9,20,null,null,15,7], 3 / \ 9 20 / \

LeetCode大深度(簡單

問題描述: 給定一個二叉樹,找出其最大深度。 二叉樹的深度為根節點到最遠葉子節點的最長路徑上的節點數。 說明: 葉子節點是指沒有子節點的節點。 示例: 給定二叉樹 [3,9,20,null,null,15,7], 3 / \ 9 20

領釦(LeetCode的所有路徑 個人題解

給定一個二叉樹,返回所有從根節點到葉子節點的路徑。 說明: 葉子節點是指沒有子節點的節點。 示例: 輸入: 1 / \ 2 3 \ 5 輸出: ["1->2->5", "1->3"] 解釋: 所有根節點到葉子節點的路徑為: 1->2-&g

路徑

(二叉樹查詢最長路徑) 建立一棵樹,輸出最長路徑,如果有多條輸出最左端的路 下面是程式碼段: #include<stdio.h> #include<malloc.h> #define null 0 struct Btree{ char data; Btre

leetcode 662大寬度

一開始的思路是用bfs,但是感覺處理起來比較麻煩,後續會更新bfs的方法,這裡先貼上dfs的方法。 /**  * Definition for a binary tree node.  * struct TreeNode {  *     int val;  *     T

LeetCode 257 的所有路徑 (數,遞迴)

1.二叉樹的所有路徑 給定一個二叉樹,返回所有從根節點到葉子節點的路徑。 說明: 葉子節點是指沒有子節點的節點。 示例: 輸入: 1 / \ 2 3 \ 5 輸出: [“1->2->5”, “1->3”] 解釋: 所

LeetCode124 路徑總和

Given a non-empty binary tree, find the maximum path sum. For this problem, a path is defined as any sequence of nodes from some starting node t

leetcode 111-小深度

最小深度定義為根節點到最近葉子節點的深度 分析: 空樹,最小深度為0 左右子樹都為空,最小深度為1 左右子樹不都為空,左右子樹中有空樹的情況,最小深度一定是在非空樹中產生,因為最小深度定義為到最

Swift 小深度

給定一個二叉樹,找出其最小深度。 最小深度是從根節點到最近葉子節點的最短路徑上的節點數量。 說明: 葉子節點是指沒有子節點的節點。 示例: 給定二叉樹 [3,9,20,null,null,15,7],返回它的最小深度  2. 我們用遞迴方法求,求法和求最大深度類似,

LeetCode 257. 的所有路徑(C++)

題目: 給定一個二叉樹,返回所有從根節點到葉子節點的路徑。 說明: 葉子節點是指沒有子節點的節點。 示例: 思路: 遞迴終止條件:到達葉子節點,即該節點的左右孩子均為空。 路徑的拼接:每

路徑

給出一個二叉樹,找到其中的最大路徑和。 路徑可以從樹中任意一個節點開始和結束。 例如: 給出如下二叉樹,        1       / \     2    3 返回6。 初始思路 為了簡化分析,我們先假設二叉樹中所有節點的值都是正數。通過觀察可以

大葉子節點距離(不含全域性變數)

題目: 輸入一顆二叉樹先序遍歷的字串,輸出該二叉樹的最大葉子節點距離 分析知,最大的距離要麼是經過根節點的一條路徑,要麼是在左子樹中的一條路徑,或者是在右子樹中的一條路徑。 那麼可以知道最大葉子節點的距離是左右子樹的高度和、左子樹最大葉節點距離、右子樹最大葉節點距

[LeetCode] Binary Tree Maximum Path Sum 路徑

Given a binary tree, find the maximum path sum. The path may start and end at any node in the tree. For example:Given the below binary tree, 1

Leetcode 124 中的路徑和 (遞迴)

給定一個非空二叉樹,返回其最大路徑和。 本題中,路徑被定義為一條從樹中任意節點出發,達到任意節點的序列。該路徑至少包含一個節點,且不一定經過根節點。 示例 1: 輸入: [1,2,3] 1 / \ 2 3 輸出: 6 示例 2:

leetcode刷題記錄---小高度

題目描述 Given a binary tree, find its minimum depth.The minimum depth is the number of nodes along the shortest path from the root node down to the n