劍指offer 對稱的二叉樹

2021-10-08 18:07:36 字數 896 閱讀 8287

請實現乙個函式,用來判斷一棵二叉樹是不是對稱的。如果一棵二叉樹和它的映象一樣,那麼它是對稱的。

例如,二叉樹 [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:

輸入:root = [1,2,2,3,4,4,3]

輸出:true

示例 2:

輸入:root = [1,2,2,null,3,null,3]

輸出:false

解題思路:乙個二叉樹是對稱二叉樹,則它的左右子樹都是對稱的,因此遞迴判斷其左右子樹是否是對稱的二叉樹,若左右子樹均為null,則返回true,若只有乙個子樹為null,返回false,否則判斷其左子樹的右子樹與其右子樹的左子樹是否相等,其右子樹的右子樹與左子樹的左子樹是否相等,若兩者均相等,返回true。

/**

* definition for a binary tree node.

* public class treenode

* }*/class solution

return issymmetric(root.left,root.right);

}public boolean issymmetric(treenode n1,treenode n2)

if(n1==null || n2==null)else if(n1.val == n2.val)

return false;

}}

劍指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 ...