Skip to content

Commit ba663fe

Browse files
committed
2020-09-29
1 parent dac0734 commit ba663fe

File tree

6 files changed

+44
-53
lines changed

6 files changed

+44
-53
lines changed

0100.相同的树/0100-相同的树.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ def isSameTree(self, p, q):
1313
"""
1414
if not p and not q:
1515
return True
16-
if not p or not q:
16+
if not p and q:
1717
return False
18+
if p and not q:
19+
return False
1820
return p.val == q.val and self.isSameTree(p.left, q.left) and self.isSameTree(p.right, q.right)

0101.对称二叉树/0101-对称二叉树.py

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,14 @@ def isSymmetric(self, root):
1111
:type root: TreeNode
1212
:rtype: bool
1313
"""
14-
def helper(node1, node2):
15-
if not node1:
16-
return not node2
17-
if not node2:
18-
return not node1
19-
return node1.val == node2.val and helper(node1.left, node2.right) and helper(node1.right, node2.left)
2014

21-
return helper(root, root)
15+
def isSame(node1, node2):
16+
if not node1 and not node2:
17+
return True
18+
if not node1 and node2:
19+
return False
20+
if node1 and not node2:
21+
return False
22+
return node1.val == node2.val and isSame(node1.left, node2.right) and isSame(node1.right, node2.left)
23+
24+
return isSame(root, root)

0112.路径总和/0112-路径总和.py

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,13 @@ def hasPathSum(self, root, sum):
1212
:type sum: int
1313
:rtype: bool
1414
"""
15-
if not root:
16-
return False
17-
if not root.left and not root.right:
18-
return root.val == sum
19-
return self.hasPathSum(root.left, sum - root.val) or self.hasPathSum(root.right, sum - root.val)
15+
def dfs(node, s):
16+
if not node:
17+
return False
18+
19+
s += node.val
20+
if not node.left and not node.right:
21+
return s == sum
22+
return dfs(node.left, s) or dfs(node.right, s)
23+
24+
return dfs(root, 0)

0113.路径总和II/0113-路径总和II.py

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6,25 +6,23 @@
66
# self.right = None
77

88
class Solution(object):
9-
def pathSum(self, root, s):
9+
def pathSum(self, root, sum):
1010
"""
1111
:type root: TreeNode
1212
:type sum: int
1313
:rtype: List[List[int]]
1414
"""
1515
res = []
16-
def dfs(node, path):
16+
def dfs(node, path, s):
1717
if not node:
18-
return
18+
return []
19+
s += node.val
20+
if not node.left and not node.right:
21+
if s == sum:
22+
res.append(path + [node.val])
1923

20-
path += [node.val]
21-
if not node.left and not node.right and sum(path) == s:
22-
res.append(path[:])
23-
24-
dfs(node.left, path)
25-
dfs(node.right, path)
26-
27-
path.pop()
28-
29-
dfs(root, [])
24+
dfs(node.left, path + [node.val], s)
25+
dfs(node.right, path + [node.val], s)
26+
27+
dfs(root, [], 0)
3028
return res

0222.完全二叉树的节点个数/0222-完全二叉树的节点个数.py

Lines changed: 5 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -11,26 +11,8 @@ def countNodes(self, root):
1111
:type root: TreeNode
1212
:rtype: int
1313
"""
14-
if not root:
15-
return 0
16-
17-
self.leavesCnt = 0
18-
self.height = 0
19-
self.flag = 0
20-
def dfs(node, layer):
21-
if not node or self.flag:
22-
return
23-
if not node.left and not node.right:
24-
25-
self.height = max(self.height, layer)
26-
if layer < self.height:
27-
self.flag = 1
28-
else:
29-
self.leavesCnt += 1
30-
return
31-
dfs(node.left, layer + 1)
32-
dfs(node.right, layer + 1)
33-
34-
dfs(root, 0)
35-
# print self.leavesCnt
36-
return self.leavesCnt + sum([2 ** i for i in range(self.height)] )
14+
def dfs(node):
15+
if not node:
16+
return 0
17+
return 1 + dfs(node.left) + dfs(node.right)
18+
return dfs(root)

0226.翻转二叉树/0226-翻转二叉树.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,9 @@ def invertTree(self, root):
1313
"""
1414
if not root:
1515
return root
16-
left = root.left
17-
right = root.right
18-
root.left = self.invertTree(right)
19-
root.right = self.invertTree(left)
16+
left = self.invertTree(root.left)
17+
right = self.invertTree(root.right)
18+
19+
root.left = right
20+
root.right = left
2021
return root

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy