判斷對稱二叉樹

2021-07-09 08:10:56 字數 724 閱讀 7176

typedef struct node bn;

不用關心輸入,二叉樹構造和刪除過程已經在main函式中實現,需要你們實現函式

int issymmetric(bn* root);

來判斷一棵二叉樹是否對稱,對稱返回1,非對稱返回0.

node結構要按照上面的**在symmetric.h中進行定義。

注意被測試二叉樹不一定是滿二叉樹。如果樹不存在(根節點指標為空)返回0。如果除根節點外沒有任何的其他節點返回1。

#include

#include

#define maxd 50

typedef struct node bn;

int islink(bn *q, bn *p)

if (p != null && q != null && q->x == p->x) else

}int issymmetric(bn* proot)

return islink(proot->left, proot->right);

}//用佇列建二叉樹

void buildtree(bn** root)

while

(head != tail)

}//後序遍歷釋放記憶體

void

freetree

(bn* root)

}int

main

()

判斷對稱二叉樹

相等條件 1.走到最底層還一樣,說明相等 root.left null root.right null,return true 2.一端有葉子一端沒有葉子,肯定不想等 if left null right null return false 3.值相等 左的右等於右的左 左的左等於右的右 class...

判斷二叉樹是否是對稱二叉樹

給定乙個二叉樹,檢查它是否是映象對稱的。例如,二叉樹 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 遞迴實現 需要滿足兩個子樹 根節點值相同 根節點1的左子樹與根節點2右子樹相同 根節點1...

JavaScript判斷對稱二叉樹

對稱二叉樹 非對稱二叉樹 實現思路 判斷根節點相同 左子樹的右節點和右子樹的左節點相同 右子樹的左節點和左子樹的右節點相同 步驟1 模擬乙個對稱二叉樹和非對稱二叉樹 對稱二叉樹 const symmetricaltree right right right 非對稱二叉樹 const binarytr...