首页 > 其他分享 >二叉树的广度遍历/层序遍历

二叉树的广度遍历/层序遍历

时间:2024-01-31 17:11:25浏览次数:30  
标签:node 遍历 队列 层序 queue add 二叉树 new

private Integer[] breadthSearch(TreeNode root) {
	List<Integer> list = new ArrayList<Integer>(); // 存放节点值
	ArrayDeque<TreeNode> queue = new ArrayDeque<TreeNode>(); // 队列,用来存放节点
	queue.add(root);
	while (!queue.isEmpty()) {
		TreeNode node = queue.pop(); // 把上层的出队列

		list.add(node.val); // 上层的值存入数组
		if (node.left != null) {
			queue.add(node.left); // 下层的入队列
		}
		if (node.right != null) {
			queue.add(node.right);// 下层的入队列
		}
	}
	return list.toArray(new Integer[0]);
}

标签:node,遍历,队列,层序,queue,add,二叉树,new
From: https://www.cnblogs.com/echo-lovely/p/17999687

相关文章

  • JS遍历对象的方法 Object.keys() Object.values()
    1.Object.keys():返回对象可枚举属性组成的数据2.Object.values():返回对象可枚举的属性的属性值,组成的数据letperson={name:'小李',age:'15',}console.log(Object.keys(person));//['name','age']//返回对象可枚举属性组成的数......
  • [刷题笔记] ybt 1364:二叉树遍历(flist)
    Problem_LinkDescription树和二叉树基本上都有先序、中序、后序、按层遍历等遍历顺序,给定中序和其它一种遍历的序列就可以确定一棵二叉树的结构。假定一棵二叉树一个结点用一个字符描述,现在给出中序和按层遍历的字符串,求该树的先序遍历字符串。Analysis我们先前做过给定前序......
  • Java中,遍历List集合有以下四种方式
    1.增强for循环(foreach):这种方式是最简单的,也是最易读的。它直接对集合中的每个元素进行操作,不需要额外的迭代器或索引变量。但是,这种方式不能在遍历过程中修改集合的结构(例如添加或删除元素)。2.使用迭代器:迭代器提供了一种通用的遍历集合的方式,可以在遍历过程中修改集合的结构。但......
  • 遍历转树结构
    遍历转树结构{varlist=newList<Foo>{newFoo("111",1),newFoo("112",2),newFoo("113",2),newFoo("114",2),newFoo("115",3),newFoo("116",1),newFoo("......
  • 二叉树(1)
    目录110平衡二叉树257二叉树的所有路径null前面一些简单题就没放上来,放的都是一开始没思路的110平衡二叉树显然这题不能单纯的返回truefalse还需要把这一层的高度接住所以用-1作为标识符,如果=-1说明下层已经有不平衡了,那么都返回-1否则就返回这棵树的高度classSolution{......
  • SqlServer中使用游标遍历数据集合
    具体代码如下所示:/***************************************** 实例:打印输出数据表BUS_Test中的Name和Age字段的值*****************************************/--声明遍历@Name和@AgeDECLARE@NameNVARCHAR(50),@AgeINT--声明游标C_UserDECLAREC_UserCURSORFAST_FOR......
  • 【树】二叉树的应用 I
    目录1.题目列表2.应用2.1.Leetcode226.翻转二叉树2.1.1.题目2.1.2.解题思路2.1.2.1.方法一:前序遍历2.1.2.2.方法二:后序遍历2.1.3.代码实现2.2.Leetcode116.填充每个节点的下一个右侧节点指针2.2.1.题目2.2.2.解题思路2.2.2.1.方法一:广度优先搜索2.2.2.2.方法二:深......
  • 如何学习算法:什么时完全二叉树?完全二叉树有什么特点?
    完全二叉树我们知道树是一种非线性数据结构。它对儿童数量没有限制。二叉树有一个限制,因为树的任何节点最多有两个子节点:左子节点和右子节点。什么是完全二叉树?完全二叉树是一种特殊类型的二叉树,其中树的所有级别都被完全填充,除了最低级别的节点从尽可能左侧填充之外。完全二叉树的......
  • 图的表示与遍历
    讲解           代码 P5318【深基18.例3】查找文献 #include<bits/stdc++.h>usingnamespacestd;constintN=100010;vector<int>a[N];intn,m,x,y,vis[N];queue<int>q;voiddfs(ints){ if(vis[s]==1)return; vis[s]=......
  • golang 遍历目录的两种方式、删除目录的两种方式
    funcmain(){ directory:="/Users/mike/Downloads" //不会递归只会读取当前的单层目录 directories,err:=os.ReadDir(directory) iferr!=nil{ fmt.Println(err) } for_,d:=rangedirectories{ fmt.Println(d.Name(),d.IsDir()) } //会递归遍历所......