【入門】lintcode 632: 二叉樹的最大節點
在二叉樹中尋找值最大的節點並返回。
樣例
給出如下一棵二叉樹:
1
/ \
-5 2
/ \ / \
0 3 -4 -5
返回值為 3
的節點。
當然是遞迴。
/** * Definition of TreeNode: * public class TreeNode { * public int val; * public TreeNode left, right; * public TreeNode(int val) { * this.val = val; * this.left = this.right = null; * } * } */ public class Solution { /* * @param root: the root of tree * @return: the max node */ public TreeNode maxNode(TreeNode root) { // write your code here if(root == null) return null; TreeNode max = new TreeNode(root.val); if(root.left != null){ TreeNode leftMaxNode = maxNode(root.left); max = max.val > leftMaxNode.val ? max : leftMaxNode; } if(root.right != null){ TreeNode rightMaxNode = maxNode(root.right); max = max.val > rightMaxNode.val ? max : rightMaxNode; } return max; } }
方法二:
/** * Definition of TreeNode: * public class TreeNode { * public int val; * public TreeNode left, right; * public TreeNode(int val) { * this.val = val; * this.left = this.right = null; * } * } */ public class Solution { /* * @param root: the root of tree * @return: the max node */ public TreeNode maxNode(TreeNode root) { // write your code here if(root == null) return null; TreeNode leftMaxNode = maxNode(root.left); TreeNode rightMaxNode = maxNode(root.right); return max(root , max(leftMaxNode,rightMaxNode)); } private TreeNode max(TreeNode node1 , TreeNode node2){ if(node1 == null) return node2; if(node2 == null) return node1; if(node1.val > node2.val) return node1; else return node2; } }
相關推薦
【入門】lintcode 632: 二叉樹的最大節點
在二叉樹中尋找值最大的節點並返回。 樣例 給出如下一棵二叉樹: 1 / \ -5 2 / \ / \ 0 3 -4 -5 返回值為 3 的節點。
【多次過】Lintcode 595. 二叉樹最長連續序列
給一棵二叉樹,找到最長連續路徑的長度。 這條路徑是指 任何的節點序列中的起始節點到樹中的任一節點都必須遵循 父-子 聯絡。最長的連續路徑必須是從父親節點到孩子節點(不能逆序)。 樣例 舉個例子: 1 \ 3 / \ 2 4 \
【多次過】Lintcode 94. 二叉樹中的最大路徑和
給出一棵二叉樹,尋找一條路徑使其路徑和最大,路徑可以在任一節點中開始和結束(路徑和為兩個節點之間所在路徑上的節點權值之和) 樣例 給出一棵二叉樹: 1 / \ 2 3 返回 6 解題思路: 利用分治法 解決問題 需要
【luogu1040】加分二叉樹
num sign 中序 計算方法 個數 整數 一個 -m 輸入輸出 題目描述 設一個n個節點的二叉樹tree的中序遍歷為(1,2,3,…,n),其中數字1,2,3,…,n為節點編號。每個節點都有一個分數(均為正整數),記第i個節點的分數為di,tree及它的每個子樹都有一個
【BZOJ3625】【codeforces438E】小朋友和二叉樹 生成函數+多項式求逆+多項式開根
== reverse turn chang 一個 函數 span 化簡 amp 首先,我們構造一個函數$G(x)$,若存在$k∈C$,則$[x^k]G(x)=1$。 不妨設$F(x)$為最終答案的生成函數,則$[x^n]F(x)$即為權值為$n$的神犇二叉樹個數
【練習題】proj1 判斷二叉樹子樹和是否為指定的值
urn http space str ret image binary res input #include <stdio.h> #include <vector> #include <list> #include&l
【LeetCode】617. 合併二叉樹
給定兩個二叉樹,想象當你將它們中的一個覆蓋到另一個上時,兩個二叉樹的一些節點便會重疊。 你需要將他們合併為一個新的二叉樹。合併的規則是如果兩個節點重疊,那麼將他們的值相加作為節點合併後的新值,否則不為 NULL 的節點將直接作為新二叉樹的節點。 示例 1: 輸入
【LeetCode】226. 翻轉二叉樹
翻轉一棵二叉樹。 示例: 輸入: 4 / \ 2 7 / \ / \ 1 3 6 9 輸出: 4 / \ 7 2 / \ / \
【CF438E】小朋友和二叉樹 解題報告
【CF438E】小朋友和二叉樹 Description 我們的小朋友很喜歡電腦科學,而且尤其喜歡二叉樹。 考慮一個含有\(n\)個互異正整數的序列\(c_1,c_2,\dots,c_n\)。如果一棵帶點權的有根二叉樹滿足其所有頂點的權值都在集合\(\{c_1,c_2,\dots,c_n\}\)中,
【BZOJ3625】【CF438E】小朋友和二叉樹(生成函式,多項式求逆,多項式開根,NTT)
Description 我們的小朋友很喜歡電腦科學,而且尤其喜歡二叉樹。 考慮一個含有n個互異正整數的序列c[1],c[2],...,c[n]。如果一棵帶點權的有根二叉樹滿足其所有頂點的權值都在集合{c[1],c[2],...,c[n]}中,我們的小朋友就會將其稱作神犇的。
【BZOJ3625】【CF438E】小朋友和二叉樹 NTT 生成函式 多項式開根 多項式求逆
題目大意 考慮一個含有n個互異正整數的序列c1,c2,…,cn。如果一棵帶點權的有根二叉樹滿足其所有頂點的權值都在集合{c1,c2,…,cn}中,我們的小朋友就會將其稱作神犇的。並且他認為,一棵帶點權的樹的權值,是其所有頂點權值的總和。 給出一個整數
【31】給定一個二叉樹打印出所有從根結點到葉子結點路徑和為 k 的路徑
題目:給定一個二叉樹要求打印出所有從根結點到葉子結點路徑和為value的路徑 例如,給定二叉樹如下要求打印出所有和為9的路徑,有1->6->3->-1和1->7
lintcode 632. 二叉樹的最大節點
描述: 在二叉樹中尋找值最大的節點並返回。 您在真實的面試中是否遇到過這個題? 樣例 給出如下一棵二叉樹: 1 / \ -5 2 / \ / \ 0
lintcode(632)二叉樹的最大節點
描述: 在二叉樹中尋找值最大的節點並返回。 樣例; 給出如下一棵二叉樹: 1 / \ -5 2 / \ / \ 0 3 -4 -5 返回值為 3 的節點。 思路: 遞迴,並且用陣列物件儲存當前結果 public clas
洛谷【P1404】加分二叉樹
題目描述 設一個n個節點的二叉樹tree的中序遍歷為(1,2,3,…,n),其中數字1,2,3,…,n為節點編號。每個節點都有一個分數(均為正整數),記第i個節點的分數為di,tree及它的每個子樹都有一個加分,任一棵子樹subtree(也包含tree本身)的
【leetcode】331. 驗證二叉樹的前序序列化
輸入格式 ret .com 代碼 二叉樹 題目 逗號 false null 題目描述: 序列化二叉樹的一種方法是使用前序遍歷。當我們遇到一個非空節點時,我們可以記錄下這個節點的值。如果它是一個空節點,我們可以使用一個標記值記錄,例如 #。 例如,上面的二叉樹可以被
CODEVS 1501二叉樹最大寬度和高度
它的 logs nbsp 二叉 ace 最小寬度 最大 -h blog 題目描述 Description 給出一個二叉樹,輸出它的最大寬度和高度。 輸入描述 Input Description 第一行一個整數n。 下面n行每行有兩個數,對於第i行的兩個數
求二叉樹最大最小深度
als 最小 log root roo null mat dep tde 1.求二叉樹最大深度 public int maxDepth(TreeNode root) { if(root==null){ return 0;
18.2.14 codevs1501 二叉樹最大寬度和高度
isp 連接 左右 ron esp color 整數 end codevs 題目描述 Description 給出一個二叉樹,輸出它的最大寬度和高度。 輸入描述 Input Description 第一行一個整數n。 下面n行每行有兩
二叉樹最大深度和最小深度
str treenode oot null 避免 結果 一個 blog clas 最大深度: int maxDepth(TreeNode *root) { if(root == NULL) return 0;