横向遍历二叉树

思路:使用队列,先将根节点放入队列,当根节点出队列时,将根节点的左右孩子压入队列,依次类推,即可横向遍历二叉树。

左边压,右边出,出的时候将左右子树压进队列

public class CrosswiseTree {

    public static void readTree(TreeNode head) {
        LinkedList<TreeNode> queue = new LinkedList<>();
        //入队列
        queue.addLast(head);
        while(queue.size()>0) {
            //出队列
            TreeNode cur = queue.pop();
            System.out.println(cur.val);
            if (cur.left!=null) {
                queue.addLast(cur.left);
            }
            if (cur.right!=null) {
                queue.addLast(cur.right);
            }
        }
    }

    public static void main(String[] args) {
        TreeNode treeNode = new TreeNode(0);
        treeNode.left = new TreeNode(1);
        treeNode.right = new TreeNode(2);
        treeNode.left.left = new TreeNode(3);
        treeNode.left.right = new TreeNode(4);
        treeNode.right.left = new TreeNode(5);
        treeNode.right.right = new TreeNode(6);
        treeNode.left.left.left = new TreeNode(7);
        treeNode.left.right.left = new TreeNode(9);
        CrosswiseTree.readTree(treeNode);
    }
}
发布了359 篇原创文章 · 获赞 24 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/lbh199466/article/details/104944227
今日推荐