兩個二叉樹是否呈映象對稱

2021-09-29 05:59:47 字數 913 閱讀 2081

題目描述:

給定兩個二叉樹,檢查它們是否呈映象對稱,即樹的結構成軸對稱,且對應節點的節點值相同。

輸入格式

第一棵樹的輸入在第11行,表示二叉樹的前序遍歷序列。

第二棵樹的輸入在第22行,表示二叉樹的前序遍歷序列。

節點值的範圍為[0,100][0,100]區間內的整數,輸入中的−1−1表示空節點。

輸出格式

輸出yes表示兩顆二叉樹映象對稱,輸出no表示兩棵樹不對稱。

#include using namespace std;

struct treenode

treenode(int x, treenode * l = null, treenode * r = null) :data(x),leftchild(l), rightchild(r) {}

};class tree

void create() ;

void print()

friend void bool(tree & tree1, tree & tree2); };

bool equal(treenode * a, treenode * b)//比較當前節點值及節點a的左(右)子樹與節點b的右(左)子樹是否相等

void bool(tree & tree1, tree & tree2)

void tree::create(treenode * & subtree)//前序遍歷遞迴建立二叉樹

else

subtree = null; }}

void tree::print(treenode * subtree)

else

cout << "-1" << " ";

}int main()

二叉樹是否是映象對稱

給定一棵二叉樹,判斷它是否是自身的映象 即 是否對稱 例如 下面這棵二叉樹是對稱的 1 2 2 3 4 4 3 下面這棵二叉樹不對稱。1 2 2 3 3 備註 希望你可以用遞迴和迭代兩種方法解決這個問題 二 示例 三 演算法 思路 用高度大於2的二叉樹舉例來說吧,也就是上面第乙個例子,只要結點1的左...

判斷兩個二叉樹是否互相映象 翻轉等價二叉樹

思路 當兩個二叉樹都為null是,則為映象。否則,當其中乙個為null時,返回false。如果都不為null,並且節點的值不相等,則為false。這時,遞迴的結束條件都已列舉完畢,接下來就是遞迴呼叫了。遞迴root1的左子樹和root2的右子樹是否互為映象,並且遞迴root1的右子樹和root2的左...

二叉樹是否對稱

題目 給定一棵二叉樹,判定它是否是映象對稱的。如下是一棵映象二叉樹。1 2 2 34 43我最開始的想法是這樣的,如下 對稱二叉樹 public boolean issymmetric treenode root treenode t1 root.left treenode t2 root.righ...