Skip to content

Commit ab6ec2d

Browse files
committed
add LeetCode 100. 相同的树
1 parent b52f6fe commit ab6ec2d

File tree

1 file changed

+109
-0
lines changed

1 file changed

+109
-0
lines changed
+109
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L2doL2Nob2NvbGF0ZTE5OTkvY2RuL2ltZy8yMDIwMDgyODE0NTUyMS5qcGc?x-oss-process=image/format,png)
2+
>仰望星空的人,不应该被嘲笑
3+
4+
## 题目描述
5+
给定两个二叉树,编写一个函数来检验它们是否相同。
6+
7+
如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。
8+
9+
示例 1:
10+
11+
```javascript
12+
输入: 1 1
13+
/ \ / \
14+
2 3 2 3
15+
16+
[1,2,3], [1,2,3]
17+
18+
输出: true
19+
```
20+
21+
示例 2:
22+
23+
```javascript
24+
输入: 1 1
25+
/ \
26+
2 2
27+
28+
[1,2], [1,null,2]
29+
30+
输出: false
31+
```
32+
33+
示例 3:
34+
35+
```javascript
36+
输入: 1 1
37+
/ \ / \
38+
2 1 1 2
39+
40+
[1,2,1], [1,1,2]
41+
42+
输出: false
43+
```
44+
45+
来源:力扣(LeetCode)
46+
链接:https://leetcode-cn.com/problems/same-tree
47+
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
48+
49+
50+
51+
52+
## 解题思路
53+
54+
两颗树一起深搜
55+
56+
- 如果两颗树对应的两个节点都为空,也是相同的。
57+
- 如果两颗树比较时其中一个节点为空,则不相同。
58+
- 如果两颗树比较时两个值都不相同,则不相同。
59+
60+
```javascript
61+
/**
62+
* Definition for a binary tree node.
63+
* function TreeNode(val, left, right) {
64+
* this.val = (val===undefined ? 0 : val)
65+
* this.left = (left===undefined ? null : left)
66+
* this.right = (right===undefined ? null : right)
67+
* }
68+
*/
69+
/**
70+
* @param {TreeNode} p
71+
* @param {TreeNode} q
72+
* @return {boolean}
73+
*/
74+
var isSameTree = function (p, q) {
75+
let flag = true;
76+
let dfs = (p, q) => {
77+
// 当前节点都是空节点,也代表相同
78+
if (p == null && q == null) return true;
79+
// 两颗树其中一个节点为空
80+
else if (p == null || q == null) return false;
81+
// 值不相同
82+
else if (p.val !== q.val) return false;
83+
return dfs(p.left, q.left) && dfs(p.right, q.right);
84+
}
85+
return dfs(p, q);
86+
};
87+
```
88+
89+
## 最后
90+
文章产出不易,还望各位小伙伴们支持一波!
91+
92+
往期精选:
93+
94+
<a href="https://github.com/Chocolate1999/Front-end-learning-to-organize-notes">小狮子前端の笔记仓库</a>
95+
96+
<a href="https://github.com/Chocolate1999/leetcode-javascript">leetcode-javascript:LeetCode 力扣的 JavaScript 解题仓库,前端刷题路线(思维导图)</a>
97+
98+
小伙伴们可以在Issues中提交自己的解题代码,🤝 欢迎Contributing,可打卡刷题,Give a ⭐️ if this project helped you!
99+
100+
101+
<a href="https://yangchaoyi.vip/">访问超逸の博客</a>,方便小伙伴阅读玩耍~
102+
103+
![](https://img-blog.csdnimg.cn/2020090211491121.png#pic_center)
104+
105+
```javascript
106+
学如逆水行舟,不进则退
107+
```
108+
109+

0 commit comments

Comments
 (0)