橫向遍歷二叉樹

思路:使用隊列,先將根節點放入隊列,當根節點出隊列時,將根節點的左右孩子壓入隊列,依次類推,即可橫向遍歷二叉樹。

左邊壓,右邊出,出的時候將左右子樹壓進隊列

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);
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章