# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:
def isCompleteTree(self, root: Optional[TreeNode]) -> bool:
visit = [0 for _ in range(1001)]
queue = deque([(1, root)])
sz = 1
visit[1] = 1
while queue:
idx, node = queue.popleft()
if node.left != None:
queue.append((2*idx, node.left))
visit[2*idx] = 1
if 2*idx != sz + 1:
return False
sz = 2*idx
if node.right != None:
queue.append((2*idx+1, node.right))
visit[2*idx+1] = 1
if 2*idx + 1 != sz + 1:
return False
sz = 2*idx+1
return True
순서대로 읽어나가면 무-난
댓글 0