最近在看面试题的时候发现,一些基础的算法都记不住了,只是能大概说出个原理….为了加深记忆,这里对一些简单的算法题进行一个归纳。
下面的代码主要解决的问题是:有一棵二叉树,请设计一个算法,按照层次打印这棵二叉树。
给定二叉树的根结点root,请返回打印结果,结果按照每一层一个数组进行储存,所有数组的顺序按照层数从上往下,且每一层的数组内元素按照从左往右排列。保证结点数小于等于500。
测试用例样例:
输入:节点值为1-7的满二叉树。
预期结果:
[1 ]
[2,3]
[4,5,6,7]
下面是Java实现:
import java.util.*;
/**
* Created by Flynnon on 17-2-27.
* 问题:有一棵二叉树,请设计一个算法,按照层次打印这棵二叉树。
* 给定二叉树的根结点root,请返回打印结果,结果按照每一层一个数组进行储存,所有数组的顺序按照层数从上往下,且每一层的数组内元素按照从左往右排列.
*/
public class BinaryTreeUtil {
/**
* 定义节点类
* 为了简单就不定义getter/setter方法了
*/
public static class Node {
public Node(){
this(0);
}
public Node(