合併兩個二叉樹

2021-09-26 03:30:38 字數 634 閱讀 9772

給定兩個二叉樹,想象當你將它們中的乙個覆蓋到另乙個上時,兩個二叉樹的一些節點便會重疊。

你需要將他們合併為乙個新的二叉樹。合併的規則是如果兩個節點重疊,那麼將他們的值相加作為節點合併後的新值,否則不為 null 的節點將直接作為新二叉樹的節點。

示例 1:

輸入:tree 1 tree 2

1 2/ \ / \

3 2 1 3

/ \ \

5 4 7

輸出:合併後的樹:3/

4 5/ \ \

5 4 7

注意: 合併必須從兩個樹的根節點開始。

class

solution

if(t2 == null)

treenode result =

newtreenode

(t1.val + t2.val)

; result.left =

mergetrees

(t1.left,t2.left)

; result.right =

mergetrees

(t1.right,t2.right)

;return result;

}}

合併二叉樹 合併兩個有序鍊錶

今天開始刷力扣100,每天都刷,不刷是狗 方法一 遞迴法 終止條件,兩棵樹的任意一顆沒有即終止 既是終止條件,也是判斷corner case if not t1 return t2 ifnot t2 return t1每個遞迴中的任務 t3 treenode t1.val t2.val 執行遞迴,左...

兩個二叉樹的問題

乙個以1為根的帶權二叉樹,每個點都有個權值 vi v i。求每乙個點的左右關聯點個數。倍增快速跳即可,如下 include using namespace std define r register define maxn 1000005 int n,v maxn lson maxn rson ma...

二叉樹的建立以及兩個二叉樹比較異同

關於二叉樹的建構函式 在主調函式中並不宣告號指標所指向的空間,在被調函式中可以直接使用。二叉樹的定義,以及比較 include using namespace std 二叉樹的二叉鍊錶的節點定義 typedef struct bitnode bitnode,bitree 建立二叉樹 若該節點的資料為...