1、513. 找树左下角的值
题目:
给定一个二叉树的 根节点 root,请找出该二叉树的 最底层 最左边 节点的值。
假设二叉树中至少有一个节点。
思路:
- 递归,规则,基本可以自己写出来
var maxDepth int
var res int
func findBottomLeftValue(root *TreeNode) int {// 代码一刷,递归,规则res = 0maxDepth = 0di(root, 1)return res
}
func di(node *TreeNode, depth int) {if node.Left == nil && node.Right == nil {if depth > maxDepth {maxDepth = depthres = node.Val}}if node.Left != nil {depth++di(node.Left,depth)depth--}if node.Right != nil {depth++di(node.Right,depth)depth--}
}
2、112. 路径总和
题目:
给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。如果存在,返回 true ;否则,返回 false 。
叶子节点 是指没有子节点的节点。
思路:
- 前序遍历,中左右, wc 我独立写出来的
- 路经总和2,求路径大体思路一样,但有个结果我算错了
func hasPathSum(root *TreeNode, targetSum int) bool {return qian(root,0,targetSum)
}
func qian(node *TreeNode,ans,targetSum int) bool {if node == nil {return false}ans += node.Valif node.Left == nil && node.Right == nil {if ans == targetSum {return true}}return qian(node.Left, ans,targetSum) || qian(node.Right, ans,targetSum)
}
3、
题目:
思路: