題目1
題解1
class Solution:
def levelOrderBottom(self, root: TreeNode) -> List[List[int]]:
Nodes = []
subList = []
if root is None:
return Nodes
else:
cNodeList = [root]
nNodeList = []
while True:
if cNodeList:
node = cNodeList.pop(0)
subList.append(node.val)
if node.left and node.right:
nNodeList.append(node.left)
nNodeList.append(node.right)
elif node.left:
nNodeList.append(node.left)
elif node.right:
nNodeList.append(node.right)
else:
pass
else:
Nodes.insert(0,subList[:])
subList = []
if nNodeList:
cNodeList = nNodeList[:]
nNodeList = []
else:
break
return Nodes
題目2
題解2
class Solution:
def isSymmetric(self, root: TreeNode) -> bool:
if root is None:
return True
else:
return self.Symmetric(root.left,root.right)
def Symmetric(self, lNode: TreeNode, rNode: TreeNode) -> bool:
if lNode is None and rNode is None:
return True
elif lNode and rNode and lNode.val == rNode.val:
return self.Symmetric(lNode.right, rNode.left) and self.Symmetric(lNode.left, rNode.right)
else:
return False
題目3
題解3
class Solution:
def maxDepth(self, root: TreeNode) -> int:
if root is None:
return 0
else:
return 1 + max(self.maxDepth(root.left), self.maxDepth(root.right))