力扣 二叉樹的坡度 深度優先搜尋

2021-10-12 17:25:12 字數 582 閱讀 7650

解題思路:深度優先搜尋,左右子樹的節點之和為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...

二叉樹的坡度

分治遞迴 遞迴函式有兩個作用,一是計算樹的節點和 也是遞迴函式的返回值 樹的節點和 根節點值 左子樹節點和 右子樹節點和。定義全域性變數記錄節點坡度和,在遞迴函式計算完左子樹節點和以及右子樹節點和後,計算根節點的坡度,然後全域性變數加上該根節點的坡度完成更新。遞迴結束後,全域性變數的值即為所有節點坡...