From 07b0f0b79f109e2841a47ebb47392a6a77e91041 Mon Sep 17 00:00:00 2001 From: SUJAY GIJRE Date: Sat, 24 Jan 2026 09:09:48 -0500 Subject: [PATCH 1/2] Create rightSideView.cpp completed --- rightSideView.cpp | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 rightSideView.cpp diff --git a/rightSideView.cpp b/rightSideView.cpp new file mode 100644 index 00000000..d9464c04 --- /dev/null +++ b/rightSideView.cpp @@ -0,0 +1,42 @@ +/** + * Definition for a binary tree node. + * struct TreeNode { + * int val; + * TreeNode *left; + * TreeNode *right; + * TreeNode() : val(0), left(nullptr), right(nullptr) {} + * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} + * TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {} + * }; + */ +class Solution { +public: + vector rightSideView(TreeNode* root) { + queue q; + vector answer; + if (root == nullptr) + return answer; + + q.push(root); + while (!q.empty()) { + int size = q.size(); + while (size--) { + TreeNode* node = q.front(); + q.pop(); + if (size == 0) { + answer.push_back(node->val); + } + + if (node->left!=nullptr) { + q.push(node->left); + } + + if (node->right!=nullptr) { + q.push(node->right); + } + } + } + + return answer; + } +}; From 899e470fcfcff5bb7dd5d873278e4a0a922ac264 Mon Sep 17 00:00:00 2001 From: SUJAY GIJRE Date: Sat, 24 Jan 2026 09:10:26 -0500 Subject: [PATCH 2/2] Create cousingInBinaryTree.cpp --- cousingInBinaryTree.cpp | 69 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 cousingInBinaryTree.cpp diff --git a/cousingInBinaryTree.cpp b/cousingInBinaryTree.cpp new file mode 100644 index 00000000..fbe1e693 --- /dev/null +++ b/cousingInBinaryTree.cpp @@ -0,0 +1,69 @@ +/** + * Definition for a binary tree node. + * struct TreeNode { + * int val; + * TreeNode *left; + * TreeNode *right; + * TreeNode() : val(0), left(nullptr), right(nullptr) {} + * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} + * TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {} + * }; + */ +class Solution { +public: + bool isCousins(TreeNode* root, int x, int y) { + queue q; + if (root == nullptr) { + return false; + } + + bool xNode = false, yNode = false; + + auto hasSameParent = [&](TreeNode *node, int x, int y) -> bool { + if (node->left && (node->left->val == x || node->left->val == y)) { + if (node->right && (node->right->val == x || node->right->val == y)) { + return true; + } + } + return false; + }; + + q.push(root); + + while (!q.empty()) { + int size = q.size(); + while (size--) { + TreeNode* node = q.front(); + q.pop(); + + if (hasSameParent(node, x, y)) { + return false; + } + + if (node->val == x ) { + xNode = true; + } + + if (node->val == y) { + yNode = true; + } + + if (xNode == true && yNode == true) { + return true; + } + + if (node->left != nullptr) { + q.push(node->left); + } + + if (node->right != nullptr) { + q.push(node->right); + } + } + if (xNode || yNode) { + return false; + } + } + return false; + } +};