102. 二叉树的层序遍历 golang

102. 二叉树的层序遍历

给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。

示例:
二叉树:[3,9,20,null,null,15,7],

   3/ \9  20/  \15   7

返回其层次遍历结果:

[
[3],
[9,20],
[15,7]
]

code

  1. 二叉树的层次遍历 II ,把102题的结果反转输出
var res [][]intfunc levelOrder(root *TreeNode) [][]int {res = [][]int{}dfs(root, 0)return res
}func dfs(root *TreeNode, level int) {if root != nil {if len(res) == level {res = append(res, []int{})}res[level] = append(res[level], root.Val)dfs(root.Left, level+1)dfs(root.Right, level+1)}
}

Code

var res [][]int
func dfs(root *TreeNode, level int) {if root != nil {if len(res) == level {res = append(res, nil)}res[level] = append(res[level], root.Val)dfs(root.Left, level+1)dfs(root.Right, level+1)}}func reverse(res [][]int) [][] int {long := len(res)-1i := 0for long > i {res[long], res[i] = res[i], res[long]long--i++}return res
}func levelOrderBottom(root *TreeNode) [][]int {res = [][]int{}dfs(root, 0)reverse(res)return res
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/382153.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

golang slice append函数如何头插

题目 二叉树的锯齿形层次遍历 给定一个二叉树,返回其节点值的锯齿形层次遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。 例如: 给定二叉树 [3,9,20,null,null…

C++的头文件和实现文件分别写什么

在C编程过程中,随着项目的越来越大,代码也会越来越多,并且难以管理和分析。于是,在C中就要分出了头(.h)文件和实现(.cpp)文件,并且也有了Package的概念。对于以C起步,C#作为“母语”的我刚开始跟着导师学习…

104. 二叉树的最大深度 golang

104. 二叉树的最大深度 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 3/ \9 20/ \15 7返回它的最…

111. 二叉树的最小深度 golang

111. 二叉树的最小深度 给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 3/ \9 20/ \15 7返回它的最小深度 2. Code /***…

c++运算符优先级总结

经常写程序的时候,遇到运算符优先级的问题,令我汗颜的是,查书的次数挺多的……狠狠心,总结下。不过还要结合大量的编程实践来深入脑海。1、首先永远忘不了的是,逗号运算符级别最低,毫无争议的还有&#xff…

LeetCode(合集) 路径总和(二叉树) golang copy的值复制

112. 路径总和 给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。 说明: 叶子节点是指没有子节点的节点。 示例: 给定如下二叉树,以及目标和 sum 22, 5/ \4 8/ …

c++指针总结(易混淆)

一:指针的概念指针是一个特殊的变量,里面存储的数值是内存里的一个地址。学好指针,重要的是搞清楚指针的四个方面的内容:指针的类型、指针所指向的类型、指针所指向的内存区、指针本身占据的内存区。1、 如何判断指针的类型呢&…

114. 二叉树展开为链表 golang

114. 二叉树展开为链表 给定一个二叉树,原地将它展开为链表。 例如,给定二叉树 1/ \2 5/ \ \ 3 4 6将其展开为: 1\2\3\4\5\6Code /*** Definition for a binary tree node.* type TreeNode struct {* Val int* Left *Tre…

十戒

用音乐代替游戏,用读书代替上网,用欣赏电影代替电视剧,用思考代替发呆,用行动代替牢骚,用远足代替安逸享受,用写作代替恋爱,用晨读代替晚起,用高质量睡眠代替熬夜,用活跃…

112. 路径总和 golang

112. 路径总和 给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。 说明: 叶子节点是指没有子节点的节点。 示例: 给定如下二叉树,以及目标和 sum 22, 5/ \4 8/ …

迷途

? 好不容易熬到了周末,却又不知道该做些什么,一转眼,发现什么都没有做又过去了,其实人又总是不这样,总是渴望得到,得到了却没了下一步的计划,这种感觉跟你爬到山顶却索然无味的感觉一样&am…

113. 路径总和 II golang

113. 路径总和 II 给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。 说明: 叶子节点是指没有子节点的节点。 示例: 给定如下二叉树,以及目标和 sum 22, 5/ \4 8/ / \11 13 4/ \ / \7 …

二项式系数的递归算法

??写递归函数时,偶然想起来二项式系数的递归写法。废话不说,上代码。code:#include #include using namespace std;int er(int n,int k){if(k0||kn)return 1;elsereturn (er(n-1,k-1)er(n-1,k))%2;}int main(){int a,b;while (cin>>a>>b)c…

222. 完全二叉树的节点个数 golang

222. 完全二叉树的节点个数 给出一个完全二叉树,求出该树的节点个数。 说明: 完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中…

刚刚有水了一道,用递归实现进制转换

code :#include <iostream>using namespace std;int a[101],i0;void jinzhi (int n){if (n1)a[i]1;else {a[i]n%2;jinzhi(n/2);}}int main (){int k,j;cin>>k;jinzhi(k);for (int ji-1;j>0;j--)cout<<a[j];}其实原理都是一样&#xff0c;无非是换成方法而…

958. 二叉树的完全性检验 golang

958. 二叉树的完全性检验 给定一个二叉树&#xff0c;确定它是否是一个完全二叉树。 百度百科中对完全二叉树的定义如下&#xff1a; 若设二叉树的深度为 h&#xff0c;除第 h 层外&#xff0c;其它各层 (1&#xff5e;h-1) 的结点数都达到最大个数&#xff0c;第 h 层所有的…

dp问题:采药

今天把采药A了&#xff0c;属于dp问题&#xff0c;主要思路是把所有时间都存进一个数组中&#xff0c;数组的值对应药的价值&#xff0c;下标是时间&#xff0c;然后记忆化搜索&#xff0c;碰到价值高的就赋值&#xff0c;相比于摘花生&#xff0c;辰辰是一个聪明的猴子&#x…

662. 二叉树最大宽度 golang

662. 二叉树最大宽度 给定一个二叉树&#xff0c;编写一个函数来获取这个树的最大宽度。树的宽度是所有层中的最大宽度。这个二叉树与满二叉树&#xff08;full binary tree&#xff09;结构相同&#xff0c;但一些节点为空。 每一层的宽度被定义为两个端点&#xff08;该层最…

传值的一点认识

今天又把C课本翻了一遍&#xff0c;发现了好多以前没彻底弄清楚的问题&#xff0c;比如说传值。说起传值&#xff0c;最先想到的恐怕是赋值&#xff0c;他是最基本的传值方式&#xff0c;不过有时候我们希望用另外的方式来传值。传值一共有三种方式&#xff0c;第一种是赋值&am…

递归经典例子

程序调用自身的编程技巧称为递归&#xff08; recursion&#xff09;。 一个过程或函数在其定义或说明中又直接或间接调用自身的一种方法&#xff0c;它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解&#xff0c;递归策略只需少量的程序就可描述出…