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)