工作忙,很久没有刷题了,趁着不忙刷道简单题,题目为 给定一个二叉树,检查它是否是镜像对称的。
例如,二叉树 [1,2,2,3,4,4,3] 是对称的。
思路递归子节点对称判断是否相等,代码如下
public static bool IsSymmetric(TreeNode root)
{
return GetTreeNode(root, root);
}
public static bool GetTreeNode(TreeNode treeLeft,TreeNode treeRight)
{
if ((treeRight==null&&treeLeft!=null)|| (treeRight != null && treeLeft == null))
{
return false;
}
else if (treeRight==null&&treeLeft==null)
{
return true;
}
//值不相等
if (treeRight.val!=treeLeft.val)
{
return false;
}
if (GetTreeNode(treeLeft.right, treeRight.left) == false)
{
return false;
}
if (GetTreeNode(treeLeft.left, treeRight.right)==false)
{
return false;
}
return true;
}