题目描述
请实现一个函数,用来判断一棵二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。
思路
考虑对称二叉树的特征
先中序遍历 然后由对称的特性来推断
代码调试是能过的 但是跑却通过不了 感觉像是牛客网自己的bug
我也不知道为什么
/*
public class TreeNode {
int val = 0;
TreeNode left = null;
TreeNode right = null;
public TreeNode(int val) {
this.val = val;
}
}
*/
import java.util.ArrayList;
public class Solution {
public static ArrayList<TreeNode> list =new ArrayList<>();
boolean isSymmetrical(TreeNode pRoot)
{
InOrder(pRoot);
if (list.size()%2==0){
return false;
}
int mid = list.size()/2;
int i =0;
while(i<mid){
if (list.get(i).val!=list.get(list.size()-1-i).val){
return false;
}
i++;
}
return true;
}
public void InOrder(TreeNode t){
if (t!=null){
InOrder(t.left);
list.add(t);
InOrder(t.right);
}
}
}