文章目录
1. 左叶子之和
:::details
/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
func sumOfLeftLeaves(root *TreeNode) int {
if root == nil {
return 0
}
left := sumOfLeftLeaves(root.Left)
right := sumOfLeftLeaves(root.Right)
mid := 0
if root.Left != nil && root.Left.Left == nil && root.Left.Right == nil {
// 叶子
mid = root.Left.Val
}
return left + right + mid
}
:::
2. 翻转二叉树 E
:::details
/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
func invertTree(root *TreeNode) *TreeNode {
dfs(root)
return root
}
func dfs(root *TreeNode) {
if root == nil {
return
}
reg := root.Left
root.Left = root.Right
root.Right = reg
dfs(root.Left)
dfs(root.Right)
}
:::