解題步驟:
葉子節點的貢獻值為節點的值,即節點9,15,7的貢獻值為9,15,7
因為每個節點的最大貢獻值,只能選取左右子節點其中乙個,和根節點進行相加,則節點20的最大貢獻值等於 20+max(15,7)=35,節點−10的最大貢獻值等於−10+max(9,35)=25
定義乙個函式dfs(root)計算root節點的最大貢獻,使用深度優先搜尋,即可以得到每個節點的最大貢獻
c++實現:
/**
* definition for a binary tree node.
* struct treenode
* };
*/class
solution
intmaxpathsum
(treenode* root)
};
Leetcode之二叉樹中的列表
題目 給你一棵以 root 為根的二叉樹和乙個 head 為第乙個節點的鍊錶。如果在二叉樹中,存在一條一直向下的路徑,且每個點的數值恰好一一對應以 head 為首的鍊錶中每個節點的值,那麼請你返回 true 否則返回 false 一直向下的路徑的意思是 從樹中某個節點開始,一直連續向下的路徑。示例 ...
leetcode之二叉樹的映象
invert binary tree invert a binary tree.4 2 7 1 3 6 9to4 7 2 9 6 3 1幾周前,我用的是遞迴解法,如下 definition for a binary tree node.struct treenode struct treenode ...
二叉樹之 二叉樹深度
二叉樹深度 獲取最大深度 public static int getmaxdepth treenode root 二叉樹寬度 使用佇列,層次遍歷二叉樹。在上一層遍歷完成後,下一層的所有節點已經放到佇列中,此時佇列中的元素個數就是下一層的寬度。以此類推,依次遍歷下一層即可求出二叉樹的最大寬度 獲取最大...