判断是否为镜像二叉树
对称的二叉树
http://www.nowcoder.com/questionTerminal/ff05d44dfdb04e1d83bdbdab320efbcb
其实本来想遍历两遍,一遍先左后右,一遍先右后左,得出来的序列一致即镜像。
想想如果树太大这样做也不是很好。
这里其实是深度优先遍历,不过是两个指针一起遍历的,一个左,一个右
public class Solution { boolean checkSame(TreeNode p1, TreeNode p2){ if(p1==null&&p2==null){ return true; } if(p1==null||p2==null){ return false; } if(p1.val==p2.val){ return checkSame(p1.left, p2.right)&&checkSame(p1.right, p2.left); }else { return false; } } boolean isSymmetrical(TreeNode pRoot){ if(pRoot==null){ return true; } return checkSame(pRoot.left, pRoot.right); } }