当前位置: 代码迷 >> 综合 >> 把二叉树打印成多行
  详细解决方案

把二叉树打印成多行

热度:88   发布时间:2024-01-28 17:29:48.0

题目描述

从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。

题解:

这里我们需要用到一个数据结构,那就是队列。

核心思想:每次出队一个元素,就将该元素的孩子节点加入队列中,直至队列中元素个数为0时,出队的顺序就是该二叉树的层次遍历结果。

import java.util.ArrayList;
import java.util.*;/*
public class TreeNode {int val = 0;TreeNode left = null;TreeNode right = null;public TreeNode(int val) {this.val = val;}}
*/
public class Solution {ArrayList<ArrayList<Integer> > Print(TreeNode pRoot) {ArrayList<ArrayList<Integer>> result = new ArrayList<ArrayList<Integer>>();if(pRoot != null){Queue<TreeNode> up = new LinkedList<TreeNode>();//用来存储上一层节点Queue<TreeNode> down = new LinkedList<TreeNode>();//用来存储下一层节点up.offer(pRoot);while( !up.isEmpty() ){ArrayList<Integer> newLine = new ArrayList<Integer>();while(!up.isEmpty()){TreeNode temp = up.poll();newLine.add(temp.val);if(temp.left != null){down.offer(temp.left);}if(temp.right != null){down.offer(temp.right);}}result.add(newLine);Queue<TreeNode> temp1 = up;up = down;down = temp1;}} return result;}
}

 

  相关解决方案