题目:判断一棵二叉树是否对称
判断两棵二叉树是否相同:
<pre name="code" class="java">public boolean isSameTree(TreeNode p, TreeNode q) {
if(p == null && q == null)
return true;
if(p == null || q == null)
return false;
if(p.val!=q.val)
return false;
return isSameTree(p.left,q.left)&&isSameTree(p.right,q.right);
}
判断两棵二叉树是否对称;
<pre name="code" class="java"> boolean sym(TreeNode root1,TreeNode root2)
{
if(root1==null&&root2==null)
return true;
if(root1==null||root2==null)
return false;
if(root1.val!=root2.val)
return false;
return sym(root1.left,root2.right)&&sym(root1.right,root2.left);
}
判断一棵二叉树是否对称,若该二叉树自己和自己对称,则为对称二叉树;
public class Solution {
boolean isSymmetrical(TreeNode pRoot)
{
return sym(pRoot,pRoot);
}
boolean sym(TreeNode root1,TreeNode root2)
{
if(root1==null&&root2==null)
return true;
if(root1==null||root2==null)
return false;
if(root1.val!=root2.val)
return false;
return sym(root1.left,root2.right)&&sym(root1.right,root2.left);
}
}