来源:LeetCode第513题 难度:中等 给定一个二叉树的根节点root,请找出该二叉树的最底层最左边节点的值。假设二叉树中至少有一个节点。
示例 1: 示例 2: 输入: [1,2,3,4,null,5,6,null,null,7] 输出: 7
提示: 这题让返回的是最底层的最左边的节点值,解题思路也是一层一层的打印,每层从右往左打印,那么每一层最后一个打印的节点就是最左边的节点,前面的我们不需要记录,只需要记录最后一层最后一个打印的节点即可。 来看下代码: // 先访问右子节点,在访问左子节点 public int findBottomLeftValue(TreeNode root) { Queue<TreeNode> queue = new LinkedList<>(); queue.add(root); while (!queue.isEmpty()) { root = queue.poll(); // 先访问右子节点,在访问左子节点 if (root.right != null) queue.add(root.right); if (root.left != null) queue.add(root.left); } return root.val;// 最后一层的最左边节点 }
|