常見演算法之17 二叉樹相等判斷以及二叉樹的複製

2022-03-14 17:22:42 字數 753 閱讀 8938

題目:輸入一顆二叉樹根節點,複製該樹,返回新建樹的根節點。

分析:跟求二叉樹的高度類似,使用遞迴呼叫,先序遍歷即可完成。

bnode* copybst(bnode* root)

題目:判斷兩顆二叉樹是否相等。

注意:

1.root1和root2相等。

2.root1的左右子樹與root2的左右子樹分別相同。

分析:按照上述兩種情況寫出遞迴即可。

bool isbstequal(bnode* root1,bnode* root2) 

else if (root1==null || root2==null)  

else  

bool is_left = isbstequal(root1->left,root2->left); 

bool is_right = isbstequal(root1->right,root2->right); 

if (is_left&&is_right) 

return true; 

else 

return false; } }

總結:二叉樹的深度,二叉樹的複製以及判斷相等,都是使用遞迴思想。

演算法菜鳥之映象二叉樹判斷

問題描述 給定一顆二叉樹,判斷其是否使映象的。例如 這棵樹是對稱的,而下面這棵樹是非對稱的 問題分析 判斷一棵樹是否映象對稱,關鍵看該二叉樹的左右子樹是否映象對稱。進一步地,如果將右 左 子樹的所有節點左右互換,其與左 右 子樹應該完全相同。基於這個思路,演算法分兩個步驟 互換右子樹的左右節點 判斷...

演算法 判斷對稱二叉樹

給定乙個二叉樹,檢查它是否是映象對稱的。例如,二叉樹 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示例 輸入 2,1,5,6,2,3 輸出 10說實話這道題我想了挺久的,可能太久沒接觸過二叉...

二叉樹 判斷二叉樹是否為完全二叉樹

問題描述 判斷一棵二叉樹是否為完全二叉樹。知識點 完全二叉樹是指除二叉樹的最後一層外,其他各層的節點數達到最大個數,且最後一層的葉節點從左到右連續存在,只缺右側若干節點。演算法實現 class node is complete binary tree public static boolean is...