劍指offer 對稱的二叉樹(C )

2021-10-04 11:21:57 字數 557 閱讀 5342

請實現乙個函式,用來判斷一顆二叉樹是不是對稱的。注意,如果乙個二叉樹同此二叉樹的映象是同樣的,定義其為對稱的。

首先說一下做這道題目最初的錯誤想法:

想到了二叉樹的中序遍歷,中序遍歷序列對稱則二叉樹對稱,於是寫好了程式,系統報錯,給出了

\left\

(層序遍歷)例子,這樣的二叉樹是非對稱的,但是它的中序遍歷[5,

5,5,

5,5]

[5,5,5,5,5]

[5,5,5

,5,5

]顯然是對稱的,敗北。

正確的思路:

二叉樹是對稱的,要麼是空樹,要麼其左右孩子均存在並且結點相等,而且左子樹的左孩子結點要等於右子樹的右孩子結點,左子樹的右孩子結點要等於右子樹的左孩子結點才行。

為此,寫出了正確的**。

class

solution

bool

issymmetrical

(treenode* proot)

};

劍指Offer 二叉樹 對稱的二叉樹

含有兩道題,都從樹的遞迴入手 請完成乙個函式,輸入乙個二叉樹,該函式輸出它的映象。解題思路 映象翻 只需要遍歷二叉樹,每次訪問乙個結點時,交換其左右子樹。實現 definition for a binary tree node.class treenode def init self,x self....

劍指offer 對稱的二叉樹

請實現乙個函式,用來判斷一顆二叉樹是不是對稱的。注意,如果乙個二叉樹同此二叉樹的映象是同樣的,定義其為對稱的。思路 複製一顆二叉樹,在該二叉樹的基礎上求得二叉樹的映象,同時遍歷兩顆二叉樹,判斷每乙個節點是否相同。public class solution private treenode copy ...

劍指offer 對稱的二叉樹

請實現乙個函式,用來判斷一顆二叉樹是不是對稱的。注意,如果乙個二叉樹同此二叉樹的映象是同樣的,定義其為對稱的。遞迴 coding utf 8 class treenode def init self,x self.val x self.left none self.right none class ...