剑指 Offer 32 - I. 从上到下打印二叉树 + 层次遍历二叉树

2023-02-12,,,,

剑指 Offer 32 - I. 从上到下打印二叉树

Offer_32_1

题目描述

解题思路

    这题属于简单题,考察的是我们对二叉树以及层次遍历的方法。
    这里只需要使用简单的队列即可完成二叉树的层次遍历。
    此外,由于这道题需要返回一个定长数组,但是我一时没有找到合适的将Integer转换为int的方法,所以使用遍历list的方式取出原来的元素放在数组中。
package com.walegarrett.offer;

/**
* @Author WaleGarrett
* @Date 2021/2/1 14:50
*/ import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Queue; /**
* 题目:从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。
* 解析:使用队列按照层次打印层次遍历序列
*/
public class Offer_32_1 {
public int[] levelOrder(TreeNode root) {
if(root == null)
return new int[0];
int[] result;
List<Integer> array = new ArrayList<Integer>(); Queue<TreeNode> que = new LinkedList<>();
que.add(root); while(!que.isEmpty()){
TreeNode temp = que.peek();
que.poll();
array.add(temp.val);
if(temp.left != null)
que.offer(temp.left);
if(temp.right != null)
que.offer(temp.right);
}
int size = array.size();
result = new int[size];
int index = 0;
for(int ele : array){
result[index++] = ele;
}
return result;
}
}

剑指 Offer 32 - I. 从上到下打印二叉树 + 层次遍历二叉树的相关教程结束。

《剑指 Offer 32 - I. 从上到下打印二叉树 + 层次遍历二叉树.doc》

下载本文的Word格式文档,以方便收藏与打印。