/*目的:求二叉樹最大直徑返回值:int
輸入:treenode
**/
/**
* definition for a binary tree node.
* struct treenode
* };
*/class
solution
intdiameterofbinarytree
(treenode* root)
};
學習一下二叉樹,感覺這兒演算法思想有點非常規,但也說不出來**。
/*目的:求二叉樹坡度乙個樹的節點的坡度定義即為,該節點左子樹的結點之和和右子樹結點之和的差的絕對值。空結點的的坡度是0。
整個樹的坡度就是其所有節點的坡度之和。
返回值:int
輸入:treenode
**/
/**
* definition for a binary tree node.
* struct treenode
* };
*/class
solution
return std::
abs(
dfs(root-
>left)
-dfs
(root-
>right))+
findtilt
(root-
>left)
+findtilt
(root-
>right);}
private
:int
dfs(treenode* root)
return root-
>val +
dfs(root-
>left)
+dfs
(root-
>right);}
};
leetcode 二叉樹 對稱二叉樹
給定乙個二叉樹,檢查它是否是映象對稱的。例如,二叉樹 1,2,2,3,4,4,3 是對稱的。1 2 2 3 4 4 3 但是下面這個 1,2,2,null,3,null,3 則不是映象對稱的 1 2 2 3 3 方法一 遞迴 思路 如果乙個樹的左子樹與右子樹映象對稱,則該樹是對稱的 兩個樹互為映象的...
LeetCode (二叉樹)反轉二叉樹
遞迴交換每乙個節點的左右子樹,重點在於訪問每乙個節點,然後交換左右子樹 definition for a binary tree node.struct treenode struct treenode inverttree struct treenode root 由於至少要講每乙個節點都訪問一次...
LeetCode之映象二叉樹(簡單 二叉樹)
問題描述 給定乙個二叉樹,檢查它是否是映象對稱的。例如,二叉樹 1,2,2,3,4,4,3 是對稱的。1 2 2 3 4 4 3但是下面這個 1,2,2,null,3,null,3 則不是映象對稱的 1 2 2 3 3說明 如果你可以運用遞迴和迭代兩種方法解決這個問題,會很加分。遞迴 definit...