注意:亲兄弟不符合条件!!
class Solution {
public boolean isCousins(TreeNode root, int x, int y) {
// 创建队列
Queue<TreeNode> queue = new LinkedList<TreeNode>();
if(root == null) return false;
boolean flagx = false;
boolean flagy = false;
queue.add(root);
// 层次遍历
while(!queue.isEmpty()){
int size = queue.size();
for(int i = 0; i < size; i++){
TreeNode node = queue.poll();
// 排除两个节点为亲兄弟的情况
if(node.left != null && node.right != null){
if((node.left.val == x && node.right.val == y) || (node.left.val == y && node.right.val == x)){
continue;
}
}
if(node.val == x) flagx = true;
if(node.val == y) flagy = true;
if(node.left != null){
queue.offer(node.left);
}
if(node.right != null){
queue.offer(node.right);
}
}
if(flagx && flagy){
return true;
}else{
flagx = false;
flagy = false;
}
}
return false;
}
}
原文:https://www.cnblogs.com/caoshikui/p/14776151.html