[알고리즘] [재 귀 편] [트 리] 8 절: leetcode 102. 이 진 트 리 의 층 차 를 옮 겨 다 니 기 (BFS 와 DFS)
[알고리즘] [재 귀 편] [나무] 제1 절: leetcode 100. 같은 나무
[알고리즘] [재 귀 편] [나무] 제2 절: leetcode 105. 이전 순서 와 중간 순서 가 서열 구조 이 진 트 리 를 옮 겨 다 녔 습 니 다.
[알고리즘] [귀속 편] [나무] 제3 절: leetcode 210. 교과 과정 표 II
[알고리즘] [재 귀 편] [나무] 4 절: leetcode 236. 이 진 트 리 의 최근 공공 조상
[알고리즘] [재 귀 편] [나무] 5 절: leetcode 572. 다른 나무의 서브 트 리
[알고리즘] [재 귀 편] [나무] 제6 절: leetcode 101. 대칭 이 진 트 리
[알고리즘] [재 귀 편] [트 리] 7 절: leetcode 98. 이 진 트 리 검증
[알고리즘] [재 귀 편] [나무] 8 절: leetcode 102. 이 진 트 리 의 층 차 를 옮 겨 다 닙 니 다.
문제 의 근원
102.
, 。 ( , )。
:
:[3,9,20,null,null,15,7],
3
/ \
9 20
/ \
15 7
:
[
[3],
[9,20],
[15,7]
]
키다리
"""
:
, 。 ( , )。
1:
(BFS): , , ,
2:
(DFS): , index,
"""
# Definition for a binary tree node.
class TreeNode:
def __init__(self, x):
self.val = x
self.left = None
self.right = None
class Solution:
def levelOrder(self, root: TreeNode):
""" (DFS): , index, """
if not root:
return []
ans = list()
def helper(index, node):
if len(ans) <= index:
ans.append([])
#
ans[index].append(node.val)
if node.left:
helper(index + 1, node.left)
if node.right:
helper(index + 1, node.right)
helper(0, root)
return ans
def levelOrder1(self, root: TreeNode):
# (BFS): , , ,
if not root:
return []
ans = list()
queue = [root]
while queue:
# ,
size = len(queue)
res = list()
for i in range(size):
# ( ), list
# / ,
node = queue.pop(0)
res.append(node.val)
if node.left:
queue.append(node.left)
if node.right:
queue.append(node.right)
ans.append(res) # list
return ans
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
9. 데이터 구조의 이 진 트 리그 다음 에 우 리 는 이 진 트 리 의 생 성, 소각, 옮 겨 다 니 기, 그리고 각종 이 진 트 리 의 성질 에 착안 하여 (높이, 노드 개수, 균형 여부 등 특성) 이 진 트 리 의 일부 응용 을 소개 해 야 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.