Day. 27 Binary Tree Level Order Traversal

Leetcode #102. Binary Tree Level Order Traversal

简单来说我们要回传每一层树的值
ex:

    3
   / \
  2   10
 /   /  \
1   8   13

output: [[3],[2,10],[1,8,13]]


防雷
防雷
防雷


大家还记得preOrder吗?
preOrder是从上到下的走访,我们只要在DFS的时候,多带一个层数就可以解掉这题了~

程序:

func levelOrder(root *TreeNode) [][]int {
	result := [][]int{}
	if root == nil {
		return result
	}

	DFS(&result, root, 0)

	return result
}

func DFS(result *[][]int, node *TreeNode, level int) {
	if node == nil {
		return
	}

    // 把node的值 加到slice里面
	if len(*result) <= level {
		*result = append(*result, []int{node.Val})
	} else {
		(*result)[level] = append((*result)[level], node.Val)
	}

    // 层数要+1
	DFS(result, node.Left, level+1)
	DFS(result, node.Right, level+1)
}

<<:  [Day21] Flutter GetX with animation

>>:  Day 21 - 依 Home 前台页面分析拆解後,逐步建立後台功能 - GridView 事件应用 - ASP.NET Web Forms C#

铁人赛 Day7 -- 一定要知道的 CSS (四) -Justify-content

前言 昨天讲了 display 当中的 Flex 属性 那今天就要来讲 display 当中的 Ju...

[Day20] TS:用型别建立型别:当个 TypeScript 的型别魔术师

写到第 20 天,关於如何建立 Utility Type 所需的知识也差不多吿一个段落,今天就来做个...

[前端暴龙机,Vue2.x 进化 Vue3 ] Day12.事件处理

Vue 里面的事件处理,使用的方式会跟一般 JavaScript 的用法相近,下面跟着一起看吧~ 事...

Day18 Lab 2 - Object storage metadata

Object的metadata让我们能快速定位Object在什麽地方、属性等等,可以理解为类似资料库...

30天轻松学会unity自制游戏-伤害敌人

先让子弹打到敌机,可以让敌机受伤.毁坏,那首先给敌机一个受伤的动画,这次就用Animation创造一...