給定兩顆二叉樹,校驗二顆二叉樹是否一致。當二叉樹的結構和每個節點的值都為一樣時判定為一致。
題解:很簡單的一道題,遞迴呼叫即可
在遞迴時需要做兩個邏輯判斷
第一:判斷結構
①:當 兩顆樹 都為null 因為都是null,也沒有子樹了,說明結構一樣
②:當 兩棵樹 乙個為null乙個不為null,說明結構不一樣
第二:判斷值
①:如果當前兩顆樹的值不相等,則明顯,兩棵樹不相等
②:遞迴呼叫兩棵樹的右子樹是否相等,如果相等在遞迴呼叫兩棵樹的左子樹是否相等
附上**:
public
boolean
issametree
(treenode p, treenode q)
if(p == null || q == null)
// 判斷值
if(p.val != q.val)
// 判斷右子樹 與 左子樹
boolean sametree =
issametree
(p.right, q.right);if
(sametree)
return
false
;}
二叉樹演算法趣題
二叉樹中的節點x含有乙個變數wealth表徵了該節點的財富,定義二叉樹中節點x的heritage為其祖先節點 包括x 的所有wealth之和減去節點x的子孫節點的所有wealth之和。求二叉樹中heritage最大的節點及其值。要求不能改變原有二叉樹的結構,不能在節點之上儲存別的資訊,演算法複雜度盡...
(二叉樹提高題)還原二叉樹
給定一棵二叉樹的先序遍歷序列和中序遍歷序列,要求計算該二叉樹的高度。輸入格式 輸入首先給出正整數n 50 為樹中結點總數。下面兩行先後給出先序和中序遍歷序列,均是長度為n的不包含重複英文本母 區別大小寫 的字串。輸出格式 輸出為乙個整數,即該二叉樹的高度。輸入樣例 9 abdfghiec fdhgi...
二叉樹之 線索二叉樹
二叉樹是一種非線性結構,遍歷二叉樹幾乎都是通過遞迴或者用棧輔助實現非遞迴的遍歷。用二叉樹作為儲存結構時,取到乙個節點,只能獲取節點的左孩子和右孩子,不能直接得到節點的任一遍歷序列的前驅或者後繼。為了儲存這種在遍歷中需要的資訊,我們利用二叉樹中指向左右子樹的空指標來存放節點的前驅和後繼資訊 對於n個結...