|
| 1 | +``` |
| 2 | +public class Solution { |
| 3 | + private static LinkedList<List<Integer>> result = new LinkedList<>(); |
| 4 | +
|
| 5 | + public static void traversalBinaryTree(TreeNode node) { |
| 6 | + if (node != null) { |
| 7 | + List<Integer> list = new ArrayList<>(node.getVal()); |
| 8 | + list.add(node.getVal()); |
| 9 | + result.addFirst(list); |
| 10 | +
|
| 11 | + TreeNode left = node.getLeft(); |
| 12 | + TreeNode right = node.getRight(); |
| 13 | + traversalBinaryTree(left, 1); |
| 14 | + traversalBinaryTree(right, 1); |
| 15 | + } |
| 16 | + } |
| 17 | +
|
| 18 | + public static void traversalBinaryTree(TreeNode node, int level) { |
| 19 | + if (node != null) { |
| 20 | + List<Integer> list; |
| 21 | + if (result.size() == level) { |
| 22 | + list = new ArrayList<>(); |
| 23 | + result.addFirst(list); |
| 24 | + }else { |
| 25 | + list = result.get(result.size() - 1- level); |
| 26 | + } |
| 27 | + list.add(node.getVal()); |
| 28 | +
|
| 29 | + TreeNode left = node.getLeft(); |
| 30 | + TreeNode right = node.getRight(); |
| 31 | +
|
| 32 | + traversalBinaryTree(left, level + 1); |
| 33 | + traversalBinaryTree(right, level + 1); |
| 34 | + } |
| 35 | + } |
| 36 | +
|
| 37 | + public static void main(String[] args) { |
| 38 | + TreeNode r3r = new TreeNode(7, null, null); |
| 39 | + TreeNode r3l = new TreeNode(15, null, null); |
| 40 | +
|
| 41 | +// TreeNode l3r = new TreeNode(18, null, null); |
| 42 | +// TreeNode l3l = new TreeNode(22, null, null); |
| 43 | +
|
| 44 | + TreeNode l2r = new TreeNode(20, r3l, r3r); |
| 45 | + TreeNode l2l = new TreeNode(9, null, null); |
| 46 | + TreeNode root = new TreeNode(3, l2l, l2r); |
| 47 | + traversalBinaryTree(root); |
| 48 | + System.out.println(result); |
| 49 | + } |
| 50 | +} |
| 51 | +
|
| 52 | +@Data |
| 53 | +@AllArgsConstructor |
| 54 | +@NoArgsConstructor |
| 55 | +@ToString |
| 56 | +class TreeNode { |
| 57 | + private int val; |
| 58 | + private TreeNode left; |
| 59 | + private TreeNode right; |
0 commit comments