剑指offer算法题:从上往下打印二叉树PrintFromTopToBottom

mac2026-03-31  6

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

思路: 1.构建一个(TreeNode类型的)list,依次将当前节点的左子节点和右子节点放进去, 2.构建一个递增1的指针,将当前节点的val放入result中。

public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) { ArrayList<Integer> result = new ArrayList<>(); ArrayList<TreeNode> list = new ArrayList<>(); //如果知道树的大小可以用数组代替 if(root == null) return result; list.add(root); int index = 0; //不断向list中放,并向result中放的过程 while(list.size() != 0){ if(index == list.size()) break; TreeNode tmp = list.get(index); if(tmp.left != null) list.add(tmp.left); if(tmp.right != null) list.add(tmp.right); result.add(tmp.val); index++; } return result; }
最新回复(0)