給定兩個二叉樹,想象當你將它們中的乙個覆蓋到另乙個上時,兩個二叉樹的一些節點便會重疊。你需要將他們合併為乙個新的二叉樹。合併的規則是如果兩個節點重疊,那麼將他們的值相加作為節點合併後的新值,否則不為 null 的節點將直接作為新二叉樹的節點。
class
solution
if(t1 == null)
if(t2 == null)
//新的節點
t1.val = t1.val + t2.val;
t1.left =
mergetrees
(t1.left,t2.left)
; t1.right =
mergetrees
(t1.right,t2.right)
;return t1;
}}
oj鏈結
給定乙個二叉樹, 找到該樹中兩個指定節點的最近公共祖先。
class
solution
if(root == p || root == q)
treenode left =
lowestcommonancestor
(root.left,p,q)
; treenode right =
lowestcommonancestor
(root.right,p,q);if
(left != null && right != null)
if(left != null)
if(right != null)
return null;
}}
oj鏈結
給定乙個二叉樹,確定它是否是乙個完全二叉樹。
class
solution
queue
queue =
newlinkedlist
<
>()
; queue.
offer
(root)
;while
(!queue.
isempty()
)else
}while
(!queue.
isempty()
)else
}return
true;}
}
oj鏈結
給你乙個樹,請你 按中序遍歷 重新排列樹,使樹中最左邊的結點現在是樹的根,並且每個結點沒有左子結點,只有乙個右子結點。
class
solution
cur.right = root;
} root.left = null;
root.right = rightroot;
return leftroot == null ? root : leftroot;
}}
oj鏈結 力扣OJ題 對稱二叉樹
給定乙個二叉樹,檢查它是否是映象對稱的。二叉樹 1,2,2,3,4,4,3 是對稱的。1 2 2 3 4 4 3 但是下面這個 1,2,2,null,3,null,3 則不是映象對稱的 1 2 2 3 3 把它直接看成只有三個節點 根節點,左子樹,右子樹 的樹,不需要展開,直接呼叫。這個題需要兩個方...
(二叉樹提高題)還原二叉樹
給定一棵二叉樹的先序遍歷序列和中序遍歷序列,要求計算該二叉樹的高度。輸入格式 輸入首先給出正整數n 50 為樹中結點總數。下面兩行先後給出先序和中序遍歷序列,均是長度為n的不包含重複英文本母 區別大小寫 的字串。輸出格式 輸出為乙個整數,即該二叉樹的高度。輸入樣例 9 abdfghiec fdhgi...
(二叉樹基礎題)求二叉樹高度
本題要求給定二叉樹的高度。函式介面定義 int getheight bintree bt 其中bintree結構定義如下 typedef struct tnode position typedef position bintree struct tnode 要求函式返回給定二叉樹bt的高度值。裁判測...