面試必備OJ題 二叉樹高階篇

2021-10-10 09:26:20 字數 1481 閱讀 7453

給定兩個二叉樹,想象當你將它們中的乙個覆蓋到另乙個上時,兩個二叉樹的一些節點便會重疊。你需要將他們合併為乙個新的二叉樹。合併的規則是如果兩個節點重疊,那麼將他們的值相加作為節點合併後的新值,否則不為 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的高度值。裁判測...