ds之dfs

深度优先搜索 更符合计算机的习惯

也就是一般使用栈来处理问题(递归)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Solution(object):
def levelOrder(self, root):
if not root:
return []
self.result = []
self._dfs(root, 0)
return self.result

def _dfs(self, node, level):
if not node: return

if len(self.result) < level + 1:
self.result.append([])

self.result[level].append(node.val)

self._dfs(node.left, level+1)
self._dfs(node.right, level+1)