"""
# Definition for a Node.
class Node(object):
def __init__(self, val=None, children=None):
self.val = val
self.children = children
"""
class Solution(object):
def levelOrder(self, root):
"""
:type root: Node
:rtype: List[List[int]]
"""
if root is None:
return None
queue=[]
queue.append(root)
res=[]
while len(queue)!=0:
size=len(queue)
cur_res=[]
while size>=1:
cur_head=queue.pop(0)
cur_res.append(cur_head.val)
for i in cur_head.children:
queue.append(i)
size-=1
res.append(cur_res)
return res
# Definition for a binary tree node.
# class TreeNode(object):
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution(object):
def levelOrderBottom(self, root):
"""
:type root: TreeNode
:rtype: List[List[int]]
"""
if root is None:
return []
queue=[]
queue.append(root)
res=[]
while len(queue)!=0:
size=len(queue)
cur_res=[]
while size>=1:
cur_head=queue.pop(0)
cur_res.append(cur_head.val)
if cur_head.left:
queue.append(cur_head.left)
if cur_head.right:
queue.append(cur_head.right)
size-=1
res.append(cur_res)
return res[::-1]
# Definition for a binary tree node.
# class TreeNode(object):
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution(object):
def levelOrder(self, root):
"""
:type root: TreeNode
:rtype: List[List[int]]
"""
# Definition for a binary tree node.
if root is None:
return []
queue=[]
queue.append(root)
res=[]
while len(queue)!=0:
size=len(queue)
cur_res=[]
while size>=1:
cur_head=queue.pop(0)
cur_res.append(cur_head.val)
if cur_head.left:
queue.append(cur_head.left)
if cur_head.right:
queue.append(cur_head.right)
size-=1
res.append(cur_res)
return res
# Definition for a binary tree node.
# class TreeNode(object):
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution(object):
def maxLevelSum(self, root):
"""
:type root: TreeNode
:rtype: int
"""
if root is None:
return 0
queue=[]
queue.append(root)
max_sum=root.val
depth=1
res_depth=depth
while len(queue)!=0:
size=len(queue)
cur_sum=0
while size>=1:
cur_head=queue.pop(0)
cur_sum+=cur_head.val
if cur_head.left:
queue.append(cur_head.left)
if cur_head.right:
queue.append(cur_head.right)
size-=1
if cur_sum>max_sum:
res_depth = depth
max_sum=cur_sum
depth+=1
return res_depth