思路
递归算法,还是不太会写,慢慢思考
代码
# 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 isBalanced(self, root: Optional[TreeNode]) -> bool:
def recur(root):
if not root:
return 0
left=recur(root.left)
if left == -1:
return -1
right=recur(root.right)
if right==-1:
return -1
return max(left,right)+1 if abs(left-right)<=1 else -1
return recur(root)!=-1
思路
不会,慢慢学,没想法,虽然知道模板自己还是写不出
代码
# 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 binaryTreePaths(self, root: Optional[TreeNode]) -> List[str]:
result=[]
path=[]
if not root:
return result
self.traversal(root,path,result)
return result
def traversal(self,cur,path,result):
path.append(cur.val)
if not cur.left and not cur.right:
sPath='->'.join(map(str,path))
result.append(sPath)
return
if cur.left:
self.traversal(cur.left,path,result)
path.pop()
if cur.right:
self.traversal(cur.right,path,result)
path.pop()
思路
不会
代码
# 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 sumOfLeftLeaves(self, root: Optional[TreeNode]) -> int:
isLeafNode=lambda node:not node.left and not node.right
def dfs(node):
ans=0
if node.left:
ans+=node.left.val if isLeafNode(node.left) else dfs(node.left)
if node.right and not isLeafNode(node.right):
ans+=dfs(node.right)
return ans
return dfs(root) if root else 0
思路
完蛋了
代码
# 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 countNodes(self, root: Optional[TreeNode]) -> int:
return self.getNodeNum(root)
def getNodeNum(self,cur):
if not cur:
return 0
leftNum=self.getNodeNum(cur.left)
rightNum=self.getNodeNum(cur.right)
treeNum=leftNum+rightNum+1
return treeNum