• 剑指offer-从上往下打印二叉树


    题目描述

    从上往下打印出二叉树的每个节点,同层节点从左至右打印。

    这道题实质是考查树的遍历算法。从上到下打印二叉树的规律:每一次打印一个结点的时候,如果该结点有子结点, 则把该结点的子结点放到一个队列的末尾。接下来到队列的头部取出最早进入队列的结点,重复前面的打印操作,直至队列中所有的结点都被打印出来为止。

    import java.util.Deque;
    import java.util.LinkedList;
    
    public class Test {
        
        class TreeNode {
            int value;
            TreeNode left;
            TreeNode right;
            public TreeNode(int value) {
                this.value = value;
            }
        }
        
        public void printFromTopToBottom(TreeNode root) {
            if(root == null) return;
            Deque<TreeNode> dequeNode = new LinkedList<TreeNode>();
            // 根结点入队
            dequeNode.add(root);
            
            while(dequeNode.size() != 0) {
                // 队首结点出队列
                TreeNode node = dequeNode.pop();
                
                System.out.print(node.value + " ");
                // 如果左子结点不为空,则左子结点入队
                if(node.left != null)
                    dequeNode.add(node.left);
                // 如果右子结点不为空,则右子结点入队
                if(node.right != null) 
                    dequeNode.add(node.right);
            }
        }
        
        public static void main(String[] args) {
            Test t = new Test();
            TreeNode node1 = t.new TreeNode(1);
            TreeNode node2 = t.new TreeNode(2);
            TreeNode node3 = t.new TreeNode(3);
            TreeNode node4 = t.new TreeNode(4);
            TreeNode node5 = t.new TreeNode(5);
            TreeNode node6 = t.new TreeNode(6);
            TreeNode node7 = t.new TreeNode(7);
            
            node1.left = node2;
            node1.right = node3;
            node2.left = node4;
            node2.right = node5;
            node3.left = node6;
            node3.right = node7;
            
            t.printFromTopToBottom(node1);  
        }
    }
  • 相关阅读:
    爬虫入门(五)
    爬虫入门(四)
    爬虫入门(三)
    爬虫入门(二)
    爬虫入门(一)
    openpyxl的简单使用
    ansible(三)
    ansible(二)
    ansible(一)
    CF Global Round 10-F
  • 原文地址:https://www.cnblogs.com/zywu/p/5776133.html
Copyright © 2020-2023  润新知