513 找树的左下角的值
给定一个二叉树的 根节点 root,请找出该二叉树的 最底层 最左边 节点的值。
假设二叉树中至少有一个节点。
import collections
class Solution(object):
def findBottomLeftValue(self, root):
"""
:type root: TreeNode
:rtype: int
"""
result = 0
if root == None:
return 0
queue = collections.deque([root])
while queue:
for i in range(len(queue)):
cur = queue.popleft()
if i == 0:
result = cur.val
if cur.left:
queue.append(cur.left)
if cur.right:
queue.append(cur.right)
return result
总结:层序遍历套一下公式即可
112 路径总和
给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。如果存在,返回 true ;否则,返回 false 。
叶子节点 是指没有子节点的节点。
class Solution(object):
def travelsal(self,cur,count):
if cur.left==None and cur.right == None and count == 0:
return True
if cur.left == None and cur.right == None:
return False
if cur.left:
count -= cur.left.val
if self.travelsal(cur.left,count):
return True
count += cur.left.val
if cur.right:
count -= cur.right.val
if self.travelsal(cur.right,count):
return True
count += cur.right.val
return False
def hasPathSum(self, root, targetSum):
"""
:type root: TreeNode
:type targetSum: int
:rtype: bool
"""
if root is None:
return False
return self.travelsal(root,targetSum-root.val)