前言
仅记录学习笔记,如有错误欢迎指正。
题目
从上往下打印二叉树示例
- 输入: {5,4,#,3,#,2,#,1}
- 输出: [5,4,3,2,1]
解法
利用主函数保存根节点就水到渠成了。(善于利用辅助函数去做事)public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) {
ArrayList<Integer> list = new ArrayList<>();
if(root !=null){
list .add(root.val);
}
return function(list,root);
}
public ArrayList<Integer> function(ArrayList<Integer> list,TreeNode root) {
if(root == null){
return list;
}
if(root.left!=null){
list.add(root.left.val);
}
if(root.right!=null){
list.add(root.right.val);
}
function(list,root.left);
function(list,root.right);
return list;
}