We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent dac0734 commit ba663feCopy full SHA for ba663fe
0100.相同的树/0100-相同的树.py
@@ -13,6 +13,8 @@ def isSameTree(self, p, q):
13
"""
14
if not p and not q:
15
return True
16
- if not p ornot q:
+ if not p and q:
17
return False
18
+ if p and not q:
19
+ return False
20
return p.val == q.val and self.isSameTree(p.left, q.left) and self.isSameTree(p.right, q.right)
0101.对称二叉树/0101-对称二叉树.py
@@ -11,11 +11,14 @@ def isSymmetric(self, root):
11
:type root: TreeNode
12
:rtype: bool
- def helper(node1, node2):
- if not node1:
- return not node2
- if not node2:
- return not node1
- return node1.val == node2.val and helper(node1.left, node2.right) and helper(node1.right, node2.left)
21
- return helper(root, root)
+ def isSame(node1, node2):
+ if not node1 and not node2:
+ return True
+ if not node1 and node2:
+ if node1 and not node2:
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
@@ -12,8 +12,13 @@ def hasPathSum(self, root, sum):
:type sum: int
- if not root:
- return False
- if not root.left and not root.right:
- return root.val == sum
- return self.hasPathSum(root.left, sum - root.val) or self.hasPathSum(root.right, sum - root.val)
+ def dfs(node, s):
+ if not node:
+ s += node.val
+ if not node.left and not node.right:
+ return s == sum
+ return dfs(node.left, s) or dfs(node.right, s)
+ return dfs(root, 0)
0113.路径总和II/0113-路径总和II.py
@@ -6,25 +6,23 @@
6
# self.right = None
7
8
class Solution(object):
9
- def pathSum(self, root, s):
+ def pathSum(self, root, sum):
10
:rtype: List[List[int]]
res = []
- def dfs(node, path):
+ def dfs(node, path, s):
if not node:
- return
+ return []
+ if s == sum:
+ res.append(path + [node.val])
- path += [node.val]
- if not node.left and not node.right and sum(path) == s:
- res.append(path[:])
-
- dfs(node.left, path)
25
- dfs(node.right, path)
26
27
- path.pop()
28
29
- dfs(root, [])
+ dfs(node.left, path + [node.val], s)
+ dfs(node.right, path + [node.val], s)
+ dfs(root, [], 0)
30
return res
0222.完全二叉树的节点个数/0222-完全二叉树的节点个数.py
@@ -11,26 +11,8 @@ def countNodes(self, root):
:rtype: int
- return 0
- self.leavesCnt = 0
- self.height = 0
- self.flag = 0
- def dfs(node, layer):
- if not node or self.flag:
- if not node.left and not node.right:
- self.height = max(self.height, layer)
- if layer < self.height:
- self.flag = 1
- else:
- self.leavesCnt += 1
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)] )
+ def dfs(node):
+ return 0
+ return 1 + dfs(node.left) + dfs(node.right)
+ return dfs(root)
0226.翻转二叉树/0226-翻转二叉树.py
@@ -13,8 +13,9 @@ def invertTree(self, root):
if not root:
return root
- left = root.left
- right = root.right
- root.left = self.invertTree(right)
- root.right = self.invertTree(left)
+ left = self.invertTree(root.left)
+ right = self.invertTree(root.right)
+ root.left = right
+ root.right = left
AltStyle によって変換されたページ (->オリジナル) / アドレス: モード: デフォルト 音声ブラウザ ルビ付き 配色反転 文字拡大 モバイル
0 commit comments