樹的節點的和以及樹的子樹

2021-08-29 09:39:43 字數 759 閱讀 1779

樹的節點的和以及樹的子樹:

由於樹的節點的求和運算,是一條路徑判斷求和,因此不太適合用容器思想。

子樹是可以的,比較麻煩。採用前序遍歷,先儲存根節點判斷;在儲存左子節點判斷,在儲存右子節點判斷,然後迭代替換。

//涉及到不是從根節點開始計算的題目;

應該從三部分計算:

1.根節點+左子節點+右子節點

2.重寫根節點計算方法

求子樹:

class solution 

public boolean issubtreewithroot(treenode s, treenode t)

}

2.節點的和

一般都用sum-root.val

計算當前節點的值是否等於新節點的值

class solution 

public int pathstartwithroot(treenode root,int sum)

}

3.判斷路徑和是否等於乙個數

如果到達新的葉子節點;且值是我們要求的,則返回真

否則;返回新的求值

sum-root.val等

class solution 

return haspathsum(root.left,sum-root.val)||haspathsum(root.right,sum-root.val);

}}

樹的子樹大小與深度

51nod 2281 這題用的是並查集的思想,由於給定了父子關係,所以很容易知道建立並查集,最後find每個數,並且find函式找到一次某個節點,就給這個節點計數一次,代表這個節點有這個子節點 include using namespace std int num 1005 pre 1005 voi...

樹的子結構 遍歷子樹

輸入兩棵二叉樹a和b,判斷b是不是a的子結構。約定空樹不是任意乙個樹的子結構 b是a的子結構,即 a中有出現和b相同的結構和節點值。例如 給定的樹 a 3 4 5 1 2給定的樹 b 4 1返回 true,因為 b 與 a 的乙個子樹擁有相同的結構和節點值。示例 1 輸入 a 1,2,3 b 3,1...

簡單判斷B樹是否是A樹的子樹

輸入兩棵二叉樹a,b,判斷b是不是a的子結構。ps 我們約定空樹不是任意乙個樹的子結構 public class solution 如果找不到,那麼就再去root的左兒子當作起點,去判斷是否包含tree2 if result 判斷右節點 if result return result public ...