Java如何判斷二叉樹是否是對(duì)稱二叉樹
題目:給定一個(gè)二叉樹,檢查它是否是鏡像對(duì)稱的。本篇經(jīng)驗(yàn)將分享如何通過遞歸調(diào)用的方式實(shí)現(xiàn)這個(gè)算法,關(guān)于什么是對(duì)稱二叉樹,可以參考如下圖片的示例。 編寫代碼,遞歸調(diào)用判斷兩棵樹是否是對(duì)稱相同的二叉樹 圖1
題目:給定一個(gè)二叉樹,檢查它是否是鏡像對(duì)稱的。本篇經(jīng)驗(yàn)將分享如何通過遞歸調(diào)用的方式實(shí)現(xiàn)這個(gè)算法,關(guān)于什么是對(duì)稱二叉樹,可以參考如下圖片的示例。
編寫代碼,遞歸調(diào)用判斷兩棵樹是否是對(duì)稱相同的二叉樹
圖1示:通過內(nèi)部類類聲明二叉樹節(jié)點(diǎn)類
圖2示:判斷兩棵樹是否是對(duì)稱相同,通過觀察可以得知條件為:根節(jié)點(diǎn)相同,并且一個(gè)樹的左子樹和另一棵樹的右子樹相同(遞歸判斷)。
調(diào)用上述方法,判斷一棵樹是否是對(duì)稱二叉樹
圖示:如果參數(shù)為空,則直接返回 true,如果不為空,則調(diào)用上述方法來判斷其是否是對(duì)稱二叉樹,參數(shù)為其左右子樹(即當(dāng)左右子樹對(duì)稱相同,則其為一棵對(duì)稱二叉樹)。
編寫代碼,中序遍歷,輸出二叉樹
圖示:通過遞歸調(diào)用,中序遍歷輸出二叉樹,當(dāng)遇到空節(jié)點(diǎn),則輸出 None。
編寫測(cè)試代碼
圖示:在主方法中,構(gòu)建兩棵樹,前者是一棵對(duì)稱二叉樹,后者不是一棵對(duì)稱二叉樹,調(diào)用上述方法,讓算法進(jìn)行判斷,并在控制臺(tái)打印結(jié)果。
運(yùn)行測(cè)試代碼
圖示:運(yùn)行主方法,觀察控制臺(tái)輸出,輸出符合預(yù)期。