using System;
public class Test
{
int val;
Test left;
Test right;
public Test(int val)
{
this.val = val;
}
public static bool IdenticalTrees(Test a, Test b)
{
if (a == null || b == null) {
return true;
}
if (a != null && a != null) {
return (a.val == b.val && IdenticalTrees(a.left, b.left) && IdenticalTrees(a.right, b.right));
}
return false;
}
public static void Main()
{
Test a = new Test(1);
a.left = new Test(2);
a.right = new Test(3);
a.left.left = new Test(4);
a.right.right = new Test(5);
Test b = new Test(1);
b.left = new Test(2);
b.right = new Test(3);
b.left.left = new Test(4);
b.right.right = new Test(4);
Console.WriteLine(IdenticalTrees(a, b));
}
}
dXNpbmcgU3lzdGVtOwoKcHVibGljIGNsYXNzIFRlc3QKewoJaW50IHZhbDsKCVRlc3QgbGVmdDsKCVRlc3QgcmlnaHQ7CgkKCXB1YmxpYyBUZXN0KGludCB2YWwpCgl7CgkJdGhpcy52YWwgPSB2YWw7Cgl9CgkKCXB1YmxpYyBzdGF0aWMgYm9vbCBJZGVudGljYWxUcmVlcyhUZXN0IGEsIFRlc3QgYikKCXsKCQlpZiAoYSA9PSBudWxsIHx8IGIgPT0gbnVsbCkgewoJCQlyZXR1cm4gdHJ1ZTsKCQl9CgkJCgkJaWYgKGEgIT0gbnVsbCAmJiBhICE9IG51bGwpIHsKCQkJcmV0dXJuIChhLnZhbCA9PSBiLnZhbCAmJiBJZGVudGljYWxUcmVlcyhhLmxlZnQsIGIubGVmdCkgJiYgSWRlbnRpY2FsVHJlZXMoYS5yaWdodCwgYi5yaWdodCkpOwoJCX0KCQkKCQlyZXR1cm4gZmFsc2U7Cgl9CglwdWJsaWMgc3RhdGljIHZvaWQgTWFpbigpCgl7CgkJVGVzdCBhID0gbmV3IFRlc3QoMSk7CgkJYS5sZWZ0ID0gbmV3IFRlc3QoMik7CgkJYS5yaWdodCA9IG5ldyBUZXN0KDMpOwoJCWEubGVmdC5sZWZ0ID0gbmV3IFRlc3QoNCk7CgkJYS5yaWdodC5yaWdodCA9IG5ldyBUZXN0KDUpOwoJCQoJCQoJCVRlc3QgYiA9IG5ldyBUZXN0KDEpOwoJCWIubGVmdCA9IG5ldyBUZXN0KDIpOwoJCWIucmlnaHQgPSBuZXcgVGVzdCgzKTsKCQliLmxlZnQubGVmdCA9IG5ldyBUZXN0KDQpOwoJCWIucmlnaHQucmlnaHQgPSBuZXcgVGVzdCg0KTsKCQkKCQlDb25zb2xlLldyaXRlTGluZShJZGVudGljYWxUcmVlcyhhLCBiKSk7Cgl9Cn0=