如何制作简单网站百度灰色关键词代发
题目:请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。
分析:
root.left的对称节点是root.right,root.left.left的对称节点是root.right.right。root.left.right的对称节点是root.right.left
递归出口:
都为空指针则返回 true
只有一个为空则返回 false
两个指针当前节点值不相等 返回false
代码:
public static boolean isSymmetrical(BinaryTreeNode pRoot) {return isSymmetrical(pRoot,pRoot);}public static boolean isSymmetrical(BinaryTreeNode pRoot1,BinaryTreeNode pRoot2) {if (pRoot1 == null && pRoot2 == null)return true;if (pRoot1 == null || pRoot2 == null)return false;if (pRoot1.m_nValue != pRoot2.m_nValue)return false;return isSymmetrical(pRoot1.m_pLeft,pRoot2.m_pRight)&& isSymmetrical(pRoot1.m_pRight,pRoot2.m_pLeft);}