本文主要是介绍Leetcode之Cousins in Binary Tree,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目:
In a binary tree, the root node is at depth 0
, and children of each depth k
node are at depth k+1
.
Two nodes of a binary tree are cousins if they have the same depth, but have different parents.
We are given the root
of a binary tree with unique values, and the values x
and y
of two different nodes in the tree.
Return true
if and only if the nodes corresponding to the values x
and y
are cousins.
Example 1:
Input: root = [1,2,3,4], x = 4, y = 3 Output: false
Example 2:
Input: root = [1,2,3,null,4,null,5], x = 5, y = 4 Output: true
Example 3:
Input: root = [1,2,3,null,4], x = 2, y = 3 Output: false
Note:
- The number of nodes in the tree will be between
2
and100
. - Each node has a unique integer value from
1
to100
.
代码:
/*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode(int x) : val(x), left(NULL), right(NULL) {}* };*/
class Solution {
public:bool isCousins(TreeNode* root, int x, int y) {if (!root)return false;queue<TreeNode*> q;q.push(root);while (!q.empty()){int size = q.size(),record=2;for (int i = 0; i < size; i++) {TreeNode* t = q.front(); q.pop();int count = 0;if (t->left) {if (t->left->val == x || t->left->val == y) count++;q.push(t->left);}if (t->right) {if (t->right->val == x || t->right->val == y)count++;q.push(t->right);}if (count == 2)return false;record -= count;}if (record == 0)return true;}return false;}
};
这篇关于Leetcode之Cousins in Binary Tree的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!