Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 6834c34

Browse files
authoredJan 3, 2019
Add files via upload
1 parent 50b11e9 commit 6834c34

File tree

2 files changed

+95
-0
lines changed

2 files changed

+95
-0
lines changed
 

‎Same Tree/Same_Tree.cpp

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
// 第一种思路 使用层次遍历依次比较各个节点
2+
// 4ms 32.81%
3+
4+
/**
5+
* Definition for a binary tree node.
6+
* struct TreeNode {
7+
* int val;
8+
* TreeNode *left;
9+
* TreeNode *right;
10+
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
11+
* };
12+
*/
13+
14+
#include <queue>
15+
16+
class Solution {
17+
public:
18+
bool isSameTree(TreeNode* p, TreeNode* q) {
19+
queue<TreeNode*> queue1;
20+
queue<TreeNode*> queue2;
21+
22+
queue1.push(p);
23+
queue2.push(q);
24+
25+
while (queue1.size() > 0 && queue2.size() > 0)
26+
{
27+
TreeNode *itemP = queue1.front();
28+
TreeNode *itemQ = queue2.front();
29+
30+
queue1.pop();
31+
queue2.pop();
32+
33+
if (itemP == 0 || itemQ == 0)
34+
{
35+
if (!(itemP == 0 && itemQ == 0))
36+
return false;
37+
}
38+
else if (!(itemP->val == itemQ->val))
39+
return false;
40+
else
41+
{
42+
queue1.push(itemP->left);
43+
queue1.push(itemP->right);
44+
45+
queue2.push(itemQ->left);
46+
queue2.push(itemQ->right);
47+
}
48+
}
49+
50+
// 当循环退出的时候,只有两个队列都为空的时候两棵树才是完全相等的
51+
if (queue1.size() == 0 && queue2.size() == 0)
52+
return true;
53+
else
54+
return false;
55+
}
56+
};

‎Same Tree/Same_Tree.py

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# 第一种思路 使用层次遍历依次比较各个节点
2+
# 52ms 34.66%
3+
4+
# Definition for a binary tree node.
5+
# class TreeNode:
6+
# def __init__(self, x):
7+
# self.val = x
8+
# self.left = None
9+
# self.right = None
10+
11+
class Solution:
12+
def isSameTree(self, p, q):
13+
"""
14+
:type p: TreeNode
15+
:type q: TreeNode
16+
:rtype: bool
17+
"""
18+
queue1 = [p]
19+
queue2 = [q]
20+
21+
while queue1 and queue2:
22+
23+
itemP = queue1.pop(0)
24+
itemQ = queue2.pop(0)
25+
26+
if itemP is None or itemQ is None:
27+
if not itemP is itemQ is None:
28+
return False
29+
elif not itemP.val == itemQ.val:
30+
return False
31+
else:
32+
queue1.append(itemP.left)
33+
queue1.append(itemP.right)
34+
35+
queue2.append(itemQ.left)
36+
queue2.append(itemQ.right)
37+
38+
# 当循环退出的时候,只有两个队列都为空的时候两棵树才是完全相等的
39+
return True if not queue1 and not queue2 else False

0 commit comments

Comments
 (0)
Please sign in to comment.