算法思想:先序遍歷,遞歸實現。先判斷根節點是否相等,然后在判斷左右子樹是否相等。
代碼如下
1 //二叉樹節點結構體 2 struct BinaryNode 3 { 4 int data; 5 BinaryNode * lc; 6 BinaryNode * rc; 7 }*BTree; 8 9 //判斷二叉樹是否相等的函數 10 11 bool isEqual(BTree T1,BTree T2) 12 { 13 if(T1 == NULL && T2 == NULL) 14 return true;//都為空,相等。 15 if(!T1||!T2) //由於上面的判斷不成立,則T1,T2至少有一個不為空 16 return false;//一個空,一個不空,不相等 17 if(T1->data == T2->data) //如果根節點相等 18 return isEqual(T1->lc,T2->lc) && isEqual(T1->rc,T2->rc);//判斷左右子樹是否都相等 19 else 20 return false; 21 }
