美文网首页工作生活
从上往下打印出二叉树的每个节点,同层节点从左至右打印。

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

作者: 小明今晚加班 | 来源:发表于2019-07-02 07:37 被阅读0次

我的理解:如果根结点为空,直接返回空列表;如果根结点不空,把根结点添加到队列(nodeList)中,然后遍历队列,如果当前结点的左右结点不空,就把左右结点添加到队列中,然后把当前节点的值添加到定义的结合中。
代码如下:

import java.util.ArrayList;
/**
public class TreeNode {
    int val = 0;
    TreeNode left = null;
    TreeNode right = null;

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

    }

}
*/
public class Solution {
    public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) {
        ArrayList<Integer> list = new ArrayList<>();
        ArrayList<TreeNode> nodeList = new ArrayList<>();
        if(root==null)
            return list;
        nodeList.add(root);
        for(int i =0 ;i<nodeList.size();i++){
            TreeNode node = nodeList.get(i);
            if(node.left!=null){
                nodeList.add(node.left);
            }
            if(node.right!=null){
                nodeList.add(node.right);
            }
            list.add(node.val);
        }
        return list;
    }
}

相关文章

网友评论

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

    本文链接:https://www.haomeiwen.com/subject/anjacctx.html