Skip to content

Commit d2d30cc

Browse files
committed
feat: update solutions to leetcode problem: No.0100
See https://leetcode-cn.com/problems/same-tree/
1 parent c8bc047 commit d2d30cc

File tree

6 files changed

+216
-34
lines changed

6 files changed

+216
-34
lines changed

Diff for: solution/0100-0199/0100.Same Tree/README.md

+80-1
Original file line numberDiff line numberDiff line change
@@ -52,15 +52,94 @@
5252
<!-- 这里可写当前语言的特殊实现逻辑 -->
5353

5454
```python
55-
55+
# Definition for a binary tree node.
56+
# class TreeNode:
57+
# def __init__(self, val=0, left=None, right=None):
58+
# self.val = val
59+
# self.left = left
60+
# self.right = right
61+
class Solution:
62+
def isSameTree(self, p: TreeNode, q: TreeNode) -> bool:
63+
if p == q:
64+
return True
65+
if p is None or q is None or p.val != q.val:
66+
return False
67+
return self.isSameTree(p.left, q.left) and self.isSameTree(p.right, q.right)
5668
```
5769

5870
### **Java**
5971

6072
<!-- 这里可写当前语言的特殊实现逻辑 -->
6173

6274
```java
75+
/**
76+
* Definition for a binary tree node.
77+
* public class TreeNode {
78+
* int val;
79+
* TreeNode left;
80+
* TreeNode right;
81+
* TreeNode() {}
82+
* TreeNode(int val) { this.val = val; }
83+
* TreeNode(int val, TreeNode left, TreeNode right) {
84+
* this.val = val;
85+
* this.left = left;
86+
* this.right = right;
87+
* }
88+
* }
89+
*/
90+
class Solution {
91+
public boolean isSameTree(TreeNode p, TreeNode q) {
92+
if (p == q) return true;
93+
if (p == null || q == null || p.val != q.val) return false;
94+
return isSameTree(p.left, q.left) && isSameTree(p.right, q.right);
95+
}
96+
}
97+
```
98+
99+
### **C++**
100+
101+
```cpp
102+
/**
103+
* Definition for a binary tree node.
104+
* struct TreeNode {
105+
* int val;
106+
* TreeNode *left;
107+
* TreeNode *right;
108+
* TreeNode() : val(0), left(nullptr), right(nullptr) {}
109+
* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
110+
* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
111+
* };
112+
*/
113+
class Solution {
114+
public:
115+
bool isSameTree(TreeNode* p, TreeNode* q) {
116+
if (p == q) return true;
117+
if (!p || !q || p->val != q->val) return false;
118+
return isSameTree(p->left, q->left) && isSameTree(p->right, q->right);
119+
}
120+
};
121+
```
63122
123+
### **Go**
124+
125+
```go
126+
/**
127+
* Definition for a binary tree node.
128+
* type TreeNode struct {
129+
* Val int
130+
* Left *TreeNode
131+
* Right *TreeNode
132+
* }
133+
*/
134+
func isSameTree(p *TreeNode, q *TreeNode) bool {
135+
if p == q {
136+
return true
137+
}
138+
if p == nil || q == nil || p.Val != q.Val {
139+
return false
140+
}
141+
return isSameTree(p.Left, q.Left) && isSameTree(p.Right, q.Right)
142+
}
64143
```
65144

66145
### **...**

Diff for: solution/0100-0199/0100.Same Tree/README_EN.md

+80-1
Original file line numberDiff line numberDiff line change
@@ -75,13 +75,92 @@
7575
### **Python3**
7676

7777
```python
78-
78+
# Definition for a binary tree node.
79+
# class TreeNode:
80+
# def __init__(self, val=0, left=None, right=None):
81+
# self.val = val
82+
# self.left = left
83+
# self.right = right
84+
class Solution:
85+
def isSameTree(self, p: TreeNode, q: TreeNode) -> bool:
86+
if p == q:
87+
return True
88+
if p is None or q is None or p.val != q.val:
89+
return False
90+
return self.isSameTree(p.left, q.left) and self.isSameTree(p.right, q.right)
7991
```
8092

8193
### **Java**
8294

8395
```java
96+
/**
97+
* Definition for a binary tree node.
98+
* public class TreeNode {
99+
* int val;
100+
* TreeNode left;
101+
* TreeNode right;
102+
* TreeNode() {}
103+
* TreeNode(int val) { this.val = val; }
104+
* TreeNode(int val, TreeNode left, TreeNode right) {
105+
* this.val = val;
106+
* this.left = left;
107+
* this.right = right;
108+
* }
109+
* }
110+
*/
111+
class Solution {
112+
public boolean isSameTree(TreeNode p, TreeNode q) {
113+
if (p == q) return true;
114+
if (p == null || q == null || p.val != q.val) return false;
115+
return isSameTree(p.left, q.left) && isSameTree(p.right, q.right);
116+
}
117+
}
118+
```
119+
120+
### **C++**
121+
122+
```cpp
123+
/**
124+
* Definition for a binary tree node.
125+
* struct TreeNode {
126+
* int val;
127+
* TreeNode *left;
128+
* TreeNode *right;
129+
* TreeNode() : val(0), left(nullptr), right(nullptr) {}
130+
* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
131+
* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
132+
* };
133+
*/
134+
class Solution {
135+
public:
136+
bool isSameTree(TreeNode* p, TreeNode* q) {
137+
if (p == q) return true;
138+
if (!p || !q || p->val != q->val) return false;
139+
return isSameTree(p->left, q->left) && isSameTree(p->right, q->right);
140+
}
141+
};
142+
```
84143
144+
### **Go**
145+
146+
```go
147+
/**
148+
* Definition for a binary tree node.
149+
* type TreeNode struct {
150+
* Val int
151+
* Left *TreeNode
152+
* Right *TreeNode
153+
* }
154+
*/
155+
func isSameTree(p *TreeNode, q *TreeNode) bool {
156+
if p == q {
157+
return true
158+
}
159+
if p == nil || q == nil || p.Val != q.Val {
160+
return false
161+
}
162+
return isSameTree(p.Left, q.Left) && isSameTree(p.Right, q.Right)
163+
}
85164
```
86165

87166
### **...**

Diff for: solution/0100-0199/0100.Same Tree/Solution.cpp

+13-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,19 @@
1+
/**
2+
* Definition for a binary tree node.
3+
* struct TreeNode {
4+
* int val;
5+
* TreeNode *left;
6+
* TreeNode *right;
7+
* TreeNode() : val(0), left(nullptr), right(nullptr) {}
8+
* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
9+
* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
10+
* };
11+
*/
112
class Solution {
213
public:
314
bool isSameTree(TreeNode* p, TreeNode* q) {
4-
if (!p && !q) return true;
5-
if ((p && !q) || (!p && q) || (p->val != q->val)) return false;
15+
if (p == q) return true;
16+
if (!p || !q || p->val != q->val) return false;
617
return isSameTree(p->left, q->left) && isSameTree(p->right, q->right);
718
}
819
};

Diff for: solution/0100-0199/0100.Same Tree/Solution.go

+17-12
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,17 @@
1-
func isSameTree(p *TreeNode, q *TreeNode) bool {
2-
if p == nil && q == nil {
3-
return true
4-
}
5-
if p == nil || q == nil {
6-
return false
7-
}
8-
if p.Val != q.Val {
9-
return false
10-
}
11-
return isSameTree(p.Left, q.Left) && isSameTree(p.Right, q.Right)
12-
}
1+
/**
2+
* Definition for a binary tree node.
3+
* type TreeNode struct {
4+
* Val int
5+
* Left *TreeNode
6+
* Right *TreeNode
7+
* }
8+
*/
9+
func isSameTree(p *TreeNode, q *TreeNode) bool {
10+
if p == q {
11+
return true
12+
}
13+
if p == nil || q == nil || p.Val != q.Val {
14+
return false
15+
}
16+
return isSameTree(p.Left, q.Left) && isSameTree(p.Right, q.Right)
17+
}

Diff for: solution/0100-0199/0100.Same Tree/Solution.java

+18-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,22 @@
1+
/**
2+
* Definition for a binary tree node.
3+
* public class TreeNode {
4+
* int val;
5+
* TreeNode left;
6+
* TreeNode right;
7+
* TreeNode() {}
8+
* TreeNode(int val) { this.val = val; }
9+
* TreeNode(int val, TreeNode left, TreeNode right) {
10+
* this.val = val;
11+
* this.left = left;
12+
* this.right = right;
13+
* }
14+
* }
15+
*/
116
class Solution {
217
public boolean isSameTree(TreeNode p, TreeNode q) {
3-
if (p==null && q==null) return true;
4-
if (p==null || q==null || p.val!=q.val) return false;
5-
return isSameTree(p.left,q.left) && isSameTree(p.right,q.right);
18+
if (p == q) return true;
19+
if (p == null || q == null || p.val != q.val) return false;
20+
return isSameTree(p.left, q.left) && isSameTree(p.right, q.right);
621
}
722
}

Diff for: solution/0100-0199/0100.Same Tree/Solution.py

+8-15
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,12 @@
11
# Definition for a binary tree node.
2-
# class TreeNode(object):
3-
# def __init__(self, x):
4-
# self.val = x
5-
# self.left = None
6-
# self.right = None
7-
8-
9-
class Solution(object):
10-
def isSameTree(self, p, q):
11-
"""
12-
:type p: TreeNode
13-
:type q: TreeNode
14-
:rtype: bool
15-
"""
16-
if p is None and q is None:
2+
# class TreeNode:
3+
# def __init__(self, val=0, left=None, right=None):
4+
# self.val = val
5+
# self.left = left
6+
# self.right = right
7+
class Solution:
8+
def isSameTree(self, p: TreeNode, q: TreeNode) -> bool:
9+
if p == q:
1710
return True
1811
if p is None or q is None or p.val != q.val:
1912
return False

0 commit comments

Comments
 (0)