lintcode 94 二叉樹中的最大路徑和

2022-03-29 17:57:51 字數 795 閱讀 7427

給出一棵二叉樹,尋找一條路徑使其路徑和最大,路徑可以在任一節點中開始和結束(路徑和為兩個節點之間所在路徑上的節點權值之和)

樣例給出一棵二叉樹:

返回 6

標籤動態規劃 分治法 遞迴

思路

找出某節點最大和次大路徑,合併這兩條路徑即為最大路徑和。

code

/**

* definition of treenode:

* class treenode

* }*/class solution

int findmaxsum(treenode *root, int &curmax)

maxleft = findmaxsum(root->left, curmax);

maxright = findmaxsum(root->right, curmax);

int temp = (0>maxleft?0:maxleft) + (0>maxright?0:maxright) + root->val;

curmax = curmax > temp ? curmax : temp;

return ( 0>(maxright>maxleft?maxright:maxleft) ? 0 : (maxright>maxleft?maxright:maxleft) ) + root->val;}};

94 二叉樹的中序遍歷

給定乙個二叉樹,返回它的中序 遍歷。示例 輸入 1,null,2,3 1 2 3輸出 1,3,2 這道題在王道408中有講到,但是記憶不是特別清晰了於是再寫了一次 首先當然是最簡單的遞迴寫法 class solution public listhelp treenode root,list list...

94 二叉樹的中序遍歷

94.二叉樹的中序遍歷 給定乙個二叉樹,返回它的中序 遍歷。示例 輸入 1,null,2,3 1 2 3輸出 1,3,2 高階 遞迴演算法很簡單,你可以通過迭代演算法完成嗎?definition for a binary tree node.struct treenode class solutio...

94 二叉樹的中序遍歷

給定乙個二叉樹的根節點root,返回它的中序遍歷。示例 1 輸入 root 1,null,2,3 輸出 1,3,2 示例 2 輸入 root 輸出 示例 3 輸入 root 1 輸出 1 示例 4 輸入 root 1,2 輸出 2,1 示例 5 輸入 root 1,null,2 輸出 1,2 遞迴 ...