From 41905f6970f944f99dcc553dbdb1807aec55127b Mon Sep 17 00:00:00 2001 From: Sandesh Kumar <96278931+I-sandesh@users.noreply.github.com> Date: Sun, 15 Oct 2023 19:11:51 +0530 Subject: [PATCH 1/2] Create README.md --- Symmetric Tree/README.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 Symmetric Tree/README.md diff --git a/Symmetric Tree/README.md b/Symmetric Tree/README.md new file mode 100644 index 0000000..4037d46 --- /dev/null +++ b/Symmetric Tree/README.md @@ -0,0 +1,25 @@ +

Symmetric Tree


Given the root of a binary tree, check whether it is a mirror of itself (i.e., symmetric around its center).

+ +

 

+

Example 1:

+ +
Input: root = [1,2,2,3,4,4,3]
+Output: true
+
+ +

Example 2:

+ +
Input: root = [1,2,2,null,3,null,3]
+Output: false
+
+ +

 

+

Constraints:

+ + + +

 

+Follow up: Could you solve it both recursively and iteratively?
From 0759328d93b950213cd1763d6f721e3139db931a Mon Sep 17 00:00:00 2001 From: Sandesh Kumar <96278931+I-sandesh@users.noreply.github.com> Date: Sun, 15 Oct 2023 19:12:52 +0530 Subject: [PATCH 2/2] Create symmetric-tree.cpp --- Symmetric Tree/symmetric-tree.cpp | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 Symmetric Tree/symmetric-tree.cpp diff --git a/Symmetric Tree/symmetric-tree.cpp b/Symmetric Tree/symmetric-tree.cpp new file mode 100644 index 0000000..7e3acc6 --- /dev/null +++ b/Symmetric Tree/symmetric-tree.cpp @@ -0,0 +1,29 @@ +/** + * 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 isSameTree(TreeNode* p, TreeNode* q){ + if(p==NULL && q==NULL) + return true; + if(p==NULL || q==NULL) + return false; + if(p->val!=q->val) + return false; + return isSameTree(p->left,q->right)&&isSameTree(p->right,q->left); +} + + bool isSymmetric(TreeNode* root){ + if(root==NULL) + return true; + return isSameTree(root->left,root->right); + } +};