【发布时间】:2020-02-16 18:04:50
【问题描述】:
public boolean isSymmetric(TreeNode A) {
if(A==null)
return true;
/* if(isSymmetric(A.left) && isSymmetric(A.right))
return 1;
else return 0;*/
ArrayList<Integer> al1= preorder(A);
System.out.println(al1);
al.clear();
//System.out.println("common "+al);
p=invertTree(A);
ArrayList<Integer> al2= preorder(p);
System.out.println(al2);
int i=0,j=0;
while(i<al1.size() && i<al2.size())
{
System.out.println(al1.get(i)+" "+al2.get(i));
if(al1.get(i)!=al2.get(i))
return false;
i++;
}
return true;
}
我正在尝试比较 2 个数组列表是否具有相同序列中的相同元素
您的意见
[1,2,2,null,3,null,3]
标准输出
[1, 2, -1, 3, -1, -1, 2, -1, 3, -1, -1] //打印al1
[1, 2, 3, -1, -1, -1, 2, 3, -1, -1, -1] //打印al2
1 1 2 2 3 3
-1 -1
-1 -1
-1 -1 2 2 3 3
-1 -1
-1 -1
-1 -1
//不知道它们如何显示相同的元素 输出 真的
预期 假的
【问题讨论】:
-
您可以对两者进行排序,然后在两者上使用 contains。这可能是一种解决方案
-
我正在尝试检查树是否是对称的...为此,我对树进行了预排序,然后将其倒置并再次进行预排序,现在我正在检查两者是否相同,即顺序然后这棵树是对称的............因为它是同一棵树,这就是为什么大小相同并且我无法对其进行排序,因为它会改变解决我的问题所需的顺序跨度>