BFS有两种用途(我分的类哈哈),1)tree; 2)graph。本文写tree的,且稍微有点变化的。
题目 | 简介 |
---|---|
339. Nested List Weight Sum | 用depth加权求和 |
364. Nested List Weight Sum II | 用逆向depth加权求和 |
394. Decode String | 用stack,而不是BFS |
742. Closest Leaf in a Binary Tree | DFS + BFS |
339. Nested List Weight Sum
Input: [[1,1],2,[1,1]] 每个元素按照depth加权求和。
Output: 10
Explanation: Four 1’s at depth 2, one 2 at depth 1.
用BFS-queue,每次遇到integer,就加权计算加入sum,遇到list就把list里的元素加入queue: q.addAll(cur.getList());
这个题有一些NestedInteger结构的特殊的方法,需要阅读理解一下。
class Solution {
public int depthSum(List<NestedInteger> nestedList) {
int sum = 0;
int depth = 1;
Queue<NestedInteger> q = new LinkedList<NestedInteger>(nestedList);//init a queue with list