层次遍历二叉树

来源:互联网 发布:python 分钟减1 编辑:程序博客网 时间:2024/05/18 20:13

老生常谈了,笔试又碰到,索性总结一下:

思路很简单,根入队,然后出队并访问,然后入队左子节点(如果不空的话),再入队右子节点(如果不空的话),循环往下,直到队列为空。

import java.util.LinkedList;class TreeNode{    int val;    TreeNode left;    TreeNode right;    public TreeNode(int val) {        this.val = val;    }}public class Test {    public static void traverse(TreeNode root){        LinkedList<TreeNode> layer = new LinkedList<>();        layer.add(root);        TreeNode index = root;        while(!layer.isEmpty()){            TreeNode cur = layer.poll();            System.out.println(cur.val);            if(cur.left!=null){                layer.offer(cur.left);            }            if(cur.right!=null){                layer.add(cur.right);            }        }    }    public static void main(String[] args){        TreeNode root = new TreeNode(1);        root.left = new TreeNode(2);        root.right = new TreeNode(3);        root.left.left = new TreeNode(4);        root.left.right = new TreeNode(5);        root.right.left = new TreeNode(6);        root.right.right = new TreeNode(7);        traverse(root);    }}


原创粉丝点击