解題思路:深度優先搜尋,左右子樹的節點之和為left_sum,right_sum,全域性變數res=0,每次迭代加上左右子樹節點之和之差的絕對值,每個節點作為根節點的子樹之和為left_sum+right_sum+root->val。當節點為空時,返回0。
* definition for a binary tree node.
*struct treenode
*treenode
(int x)
:val
(x),
left
(nullptr),
right
(nullptr)*
treenode
(int x, treenode *left, treenode *right)
:val
(x),
left
(left)
,right
(right)*}
;*/class
solution
intdfs
(treenode* root)
};
二叉樹的深度優先搜尋
分析 使用兩個棧來存放節點元素,棧1用來存放未遍歷過的節點,棧2用來存放遍歷的節點。具體步驟 1 把第乙個節點壓進棧1。見圖 a 2 把棧1中的棧頂節點彈出,壓進棧2 若棧1為空,且被彈出節點有子節點,則把被彈出節點的子節點按從右到左的順序壓進棧1。見圖 b 3 重複步驟2,直至棧1為空。見圖 c ...
二叉樹的坡度
給定乙個二叉樹,計算整個樹的坡度。乙個樹的節點的坡度定義即為,該節點左子樹的結點之和和右子樹結點之和的差的絕對值。空結點的的坡度是0。整個樹的坡度就是其所有節點的坡度之和。示例 輸入 1 2 3 輸出 1 解釋 結點的坡度 2 0 結點的坡度 3 0 結點的坡度 1 2 3 1 樹的坡度 0 0 1...
二叉樹的坡度
分治遞迴 遞迴函式有兩個作用,一是計算樹的節點和 也是遞迴函式的返回值 樹的節點和 根節點值 左子樹節點和 右子樹節點和。定義全域性變數記錄節點坡度和,在遞迴函式計算完左子樹節點和以及右子樹節點和後,計算根節點的坡度,然後全域性變數加上該根節點的坡度完成更新。遞迴結束後,全域性變數的值即為所有節點坡...