题目描述:
我的代码:
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
int result = 0;
public boolean isCousins(TreeNode root, int x, int y) {
int depx = dep(root, x);
int depy = dep(root, y);
System.out.println(depx);
System.out.println(depy);
if(depx != depy){
return false;
}
if(getparent(0, root, x) == getparent(0, root, y)){
return false;
}
return true;
}
public void get(int result){
result = 991;
}
public int dep(TreeNode root,int result){
Queue<TreeNode> tem = new LinkedList<>();
tem.offer(root);
int reus = 0;
while (!tem.isEmpty()) {
int size = tem.size();
reus ++;
for (int i = 0; i < size; i++) {
TreeNode temNode = tem.poll();
if(temNode.val == result){
return reus;
}
if(temNode.left != null){
tem.offer(temNode.left);
}
if(temNode.right != null){
tem.offer(temNode.right);
}
}
}
return reus;
}
public int getparent(int parent,TreeNode root,int value){
if(root == null){
return -999;
}
if(root.left != null){
if(root.left.val == value){
parent = root.val;
return root.val;
}
}
if(root.right != null){
if(root.right.val == value){
parent = root.val;
return root.val;
}
}
parent = getparent(parent, root.left, value);
if(parent == -999){
parent = getparent(parent, root.right, value);
}
return parent;
}
}
写的那个寻找某一个值的深度使用递归没有写出来,无奈只能用循环写出来了