例如,二叉树 [1,2,2,3,4,4,3] 是对称的。
1
/
2 2
/ \ /
3 4 4 3
public boolean checkBinaryTree(TreeNode left,TreeNode right){
if(left==null && right!=null){
return false;
}
if(right==null && left!=null){
return false;
}
if(left.val!=right.val){
return false;
}
boolean b1 = checkBinaryTree(left.left,right.right);
boolean b2 = checkBinaryTree(left.right,right.left);
return b1&&b2;
}
给两个整数数组 A 和 B ,返回两个数组中公共的、长度最长的子数组的长度。
输入:
A: [1,2,3,2,1]
B: [3,2,1,4,7]
输出: 3
解释:
长度最长的公共子数组是 [3, 2, 1]。
给定一个二叉树,找到两个节点间的最大距离
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
//Scanner in = new Scanner(System.in);
//int a = in.nextInt();
//System.out.println(a);
System.out.println("Hello World!");
}
public TreeNode getPath(TreeNode root,TreeNode node1 ,TreeNode node2,int[] arr){
if(node1 == null){
return null;
}
if(node2 == null){
return null;
}
if(root == node1){
return node1;
}
if(root == node2){
return root;
}
TreeNode noLeft = getPath(root.left,ndoe1,node2,arr);
TreeNode noRight = getPath(root.right,ndoe1,node2,arr);
if(noLeft == noRight){
depth = arr[0]+arr[1];
return noLeft;
}
if(noLeft!=null && noLeft == node1){
arr[0]++;
return noLeft;
}
if(noRIght!=null && noRight == node2){
arr[1]++;
return noRight;
}
}
}