【剑指offer】面试题28:对称的二叉树(Java)
請(qǐng)實(shí)現(xiàn)一個(gè)函數(shù),用來(lái)判斷一棵二叉樹(shù)是不是對(duì)稱(chēng)的。如果一棵二叉樹(shù)和它的鏡像一樣,那么它是對(duì)稱(chēng)的。
例如,二叉樹(shù)?[1,2,2,3,4,4,3] 是對(duì)稱(chēng)的。
????1
???/ \
??2 ??2
?/ \ / \
3 ?4 4 ?3
但是下面這個(gè)?[1,2,2,null,3,null,3] 則不是鏡像對(duì)稱(chēng)的:
????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
?
限制:
0 <= 節(jié)點(diǎn)個(gè)數(shù) <= 1000
代碼:
/**
?*?Definition?for?a?binary?tree?node.
?*?public?class?TreeNode?{
?*?????int?val;
?*?????TreeNode?left;
?*?????TreeNode?right;
?*?????TreeNode(int?x)?{?val?=?x;?}
?*?}
?*/
class?Solution?{
????public?boolean?isSymmetric(TreeNode?root)?{
????????if(root==null)
????????{
????????????return?true;
????????}
????????if(root.left==null&&root.right==null)
????????{
????????????return?true;
????????}
????????if(root.left==null||root.right==null)
????????{
????????????return?false;
????????}
????????return?find(root.left,root.right);
????}
????public?boolean?find(TreeNode?p,TreeNode?q)
????{
????????if(p==null&&q==null)
????????{
????????????return?true;
????????}
????????if(p==null||q==null)
????????{
????????????return?false;
????????}
????????if(p.val==q.val)
????????{
????????????return?find(p.left,q.right)&&find(p.right,q.left);
????????}
????????else
????????{
????????????return?false;
????????}
????}
}
總結(jié)
以上是生活随笔為你收集整理的【剑指offer】面试题28:对称的二叉树(Java)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 计算机组成原理——Cache与主存的地址
- 下一篇: Leetcode--225. 用队列实现