按照层次遍历;但是话要说回来,按层遍历,其实就是使用先序遍历,分层遍历二叉树的。
遍历每一层,将每个节点的子节点push进queue队列import java.util.Queue;
import java.util.LinkedList;
class TreeNode{
public int val;
public TreeNode left;
public TreeNode right;
public TreeNode(int val) {
this.val = val;
this.left = null;
this.right = null;
}
}
public class Main {
public static void main(String[] args) {
TreeNode root = new TreeNode(1);
TreeNode node2 = new TreeNode(2);
TreeNode node3 = new TreeNode(3);
TreeNode node4 = new TreeNode(4);
TreeNode node5 = new TreeNode(5);
TreeNode node6 = new TreeNode(6);
TreeNode node7 = new TreeNode(7);
root.left = node2;
root.right = node3;
node2.left = node4;
node2.right = node5;
node3.left = node6;
node3.right = node7;
Queue queue = new LinkedList<>();
queue.offer(root);
while(!queue.isEmpty()) {
//根
TreeNode temp = queue.poll();
System.out.printf("%d ", temp.val);
//左
if(temp.left != null) {
queue.offer(temp.left);
}
//右
if(temp.right != null) {
queue.offer(temp.right);
}
}
}
}
//打印结果:
1 2 3 4 5 6 7