从上往下打印二叉树-层次遍历二叉树

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

例如,以下二叉树层次遍历的结果为:1,2,3,4,5,6,7


深度截图_选择区域_20190510150420.png

使用队列来进行层次遍历。

不需要使用两个队列分别存储当前层的节点和下一层的节点,因为在开始遍历一层的节点时,当前队列中的节点数就是当前层的节点数,只要控制遍历这么多节点数,就能保证这次遍历的都是当前层的节点。

{递归
判断 节点==val
是的话找到了
不是的话找左右子节点 key=key-node.val
}

package offer2;

import java.util.Stack;

public class TreePath {
    public static void main(String[] args) {
        BinaryTreeNode root1 = new BinaryTreeNode(1);
        BinaryTreeNode node1 = new BinaryTreeNode(4);
        BinaryTreeNode node2 = new BinaryTreeNode(5);
        BinaryTreeNode node3 = new BinaryTreeNode(3);
        BinaryTreeNode node4 = new BinaryTreeNode(6);
        BinaryTreeNode node5 = new BinaryTreeNode(3);
        BinaryTreeNode node6 = new BinaryTreeNode(2);
        root1.left = node1;
        root1.right = node2;
        node1.left = node3;
        node1.right = node4;
        node2.left = node5;
        node2.right = node6;
        TreePath treePath=new TreePath();
        treePath.findpath(root1,8);
    }
    public void  findpath(BinaryTreeNode root,int key){
        if (root==null){
            return;
        }
        Stack<Integer> stack=new Stack<>();
        findpath(root,key,stack);
    }
    public void findpath(BinaryTreeNode root,int key,Stack <Integer> path){
        if (root==null)
            return;
        if(root.left == null && root.right == null){
            if(root.val == key){
                System.out.println("路径开始");
                for(int i :path)
                    System.out.print(i+",");
                System.out.print(root.val);
            }
        }
        else{
            path.push(root.val);
            findpath(root.left,key-root.val,path);
            findpath(root.right,key-root.val,path);
            path.pop();
        }
    }
}
class BinaryTreeNode {
    int val = 0;
    BinaryTreeNode left = null;
    BinaryTreeNode right = null;

    public BinaryTreeNode(int val) {
        this.val = val;

    }

}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容