給出一棵二叉樹,尋找一條路徑使其路徑和最大,路徑可以在任一節點中開始和結束(路徑和為兩個節點之間所在路徑上的節點權值之和)思路樣例給出一棵二叉樹:
返回 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 遞迴 ...