LeetCode 404. 左叶子之和

题目描述

🔥 404. 左叶子之和

image-20230312171824388

思路分析

解题思路

参考代码

1
2
3
4
5
6
7
8
9
10
11
12
func sumOfLeftLeaves(root *TreeNode) int {
	if root == nil {
		return 0
	}
	sum := 0
	if root.Left != nil && root.Left.Left == nil && root.Left.Right == nil {
		sum += root.Left.Val
	}
	sum += sumOfLeftLeaves(root.Left)
	sum += sumOfLeftLeaves(root.Right)
	return sum
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
type QueueNode struct {
	Node   *TreeNode
	IsLeft bool
}

func sumOfLeftLeaves(root *TreeNode) int {
	if root == nil {
		return 0
	}
	queue := []*QueueNode{&QueueNode{Node: root, IsLeft: false}}
	totalSum := 0
	for len(queue) > 0 {
		node, isLeft := queue[0].Node, queue[0].IsLeft
		queue = queue[1:]
		if isLeft && node.Left == nil && node.Right == nil {
			totalSum += node.Val
		}
		if node.Left != nil {
			queue = append(queue, &QueueNode{Node: node.Left, IsLeft: true})
		}
		if node.Right != nil {
			queue = append(queue, &QueueNode{Node: node.Right, IsLeft: false})
		}
	}
	return totalSum
}

🍏 点击查看 Java 题解

1
write your code here
本文作者:
本文链接: https://hgnulb.github.io/blog/28113436
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处!