Skip to content

Commit ad0fadf

Browse files
kant-liazl397985856
authored andcommitted
feat: Add python code for problem 102, 113 (azl397985856#222)
* Fix solution on problem 88 with js, fixs azl397985856#62 * Fix solution on problem 88, fixs azl397985856#62 * Python solution for problem 90 * Add python solution for problem 92 * Add python solution for problem 94 * Add python code for problem 98 * add python code for problem 102 * add python code for problem 113
1 parent a3776ef commit ad0fadf

File tree

2 files changed

+68
-3
lines changed

2 files changed

+68
-3
lines changed

problems/102.binary-tree-level-order-traversal.md

Lines changed: 36 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ return its level order traversal as:
3232

3333
如果不入队特殊元素Null来表示每层的结束,则在while循环开始时保存当前队列的长度,以保证每次只遍历一层(参考下面的C++ Code)。
3434

35-
> 如果采用递归方式,则需要将当前节点,当前所在的level以及结果数组传递给递归函数。在递归函数中,取出节点的值,添加到level参数对应结果数组元素中(参考下面的C++ Code)。
35+
> 如果采用递归方式,则需要将当前节点,当前所在的level以及结果数组传递给递归函数。在递归函数中,取出节点的值,添加到level参数对应结果数组元素中(参考下面的C++ Code 或 Python Code)。
3636
3737

3838
## 关键点解析
@@ -47,7 +47,7 @@ return its level order traversal as:
4747

4848

4949
## 代码
50-
* 语言支持:JS,C++
50+
* 语言支持:JS,C++,Python3
5151

5252
Javascript Code:
5353
```js
@@ -188,6 +188,40 @@ private:
188188
}
189189
};
190190
```
191+
Python Code:
192+
```python
193+
# Definition for a binary tree node.
194+
# class TreeNode:
195+
# def __init__(self, x):
196+
# self.val = x
197+
# self.left = None
198+
# self.right = None
199+
200+
class Solution:
201+
def levelOrder(self, root: TreeNode) -> List[List[int]]:
202+
"""递归法"""
203+
if root is None:
204+
return []
205+
206+
result = []
207+
208+
def add_to_result(level, node):
209+
"""递归函数
210+
:param level int 当前在二叉树的层次
211+
:param node TreeNode 当前节点
212+
"""
213+
if level > len(result) - 1:
214+
result.append([])
215+
216+
result[level].append(node.val)
217+
if node.left:
218+
add_to_result(level+1, node.left)
219+
if node.right:
220+
add_to_result(level+1, node.right)
221+
222+
add_to_result(0, root)
223+
return result
224+
```
191225

192226
## 相关题目
193227
- [103.binary-tree-zigzag-level-order-traversal](./103.binary-tree-zigzag-level-order-traversal.md)

problems/113.path-sum-ii.md

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ Return:
4949

5050
## 代码
5151

52-
* 语言支持:JS,C++
52+
* 语言支持:JS,C++,Python3
5353

5454
JavaScript Code:
5555

@@ -122,6 +122,37 @@ private:
122122
}
123123
};
124124
```
125+
```python
126+
# Definition for a binary tree node.
127+
# class TreeNode:
128+
# def __init__(self, x):
129+
# self.val = x
130+
# self.left = None
131+
# self.right = None
132+
133+
class Solution:
134+
def pathSum(self, root: TreeNode, sum: int) -> List[List[int]]:
135+
if not root:
136+
return []
137+
138+
result = []
139+
140+
def trace_node(pre_list, left_sum, node):
141+
new_list = pre_list.copy()
142+
new_list.append(node.val)
143+
if not node.left and not node.right:
144+
# 这个判断可以和上面的合并,但分开写会快几毫秒,可以省去一些不必要的判断
145+
if left_sum == node.val:
146+
result.append(new_list)
147+
else:
148+
if node.left:
149+
trace_node(new_list, left_sum-node.val, node.left)
150+
if node.right:
151+
trace_node(new_list, left_sum-node.val, node.right)
152+
153+
trace_node([], sum, root)
154+
return result
155+
```
125156
## 相关题目
126157

127158
- [39.combination-sum](./39.combination-sum.md)

0 commit comments

Comments
 (0)