zoukankan      html  css  js  c++  java
  • [LC] 513. Find Bottom Left Tree Value

    Given a binary tree, find the leftmost value in the last row of the tree.

    Example 1:

    Input:
    
        2
       / 
      1   3
    
    Output:
    1
    

    Example 2: 

    Input:
    
            1
           / 
          2   3
         /   / 
        4   5   6
           /
          7
    
    Output:
    7
    

    Note: You may assume the tree (i.e., the given root node) is not NULL.

    Solution 1:

    DFS, preOrder

    /**
     * Definition for a binary tree node.
     * public class TreeNode {
     *     int val;
     *     TreeNode left;
     *     TreeNode right;
     *     TreeNode(int x) { val = x; }
     * }
     */
    class Solution {
        int height = 0;
        int res = 0;
        public int findBottomLeftValue(TreeNode root) {
            helper(root, 1);
            return res;
        }
        
        private void helper(TreeNode root, int depth) {
            if (root == null) {
                return;
            }
            if (height < depth) {
                height = depth;
                res = root.val;
            }
            helper(root.left, depth + 1);
            helper(root.right, depth + 1);
        }
    }

    Solution 2:

    BFS

    /**
     * Definition for a binary tree node.
     * public class TreeNode {
     *     int val;
     *     TreeNode left;
     *     TreeNode right;
     *     TreeNode(int x) { val = x; }
     * }
     */
    class Solution {
        public int findBottomLeftValue(TreeNode root) {
            Queue<TreeNode> queue = new LinkedList<>();
            int res = 0;
            queue.offer(root);
            while (!queue.isEmpty()) {
                TreeNode cur = queue.poll();
                res = cur.val;
                if (cur.right != null) {
                    queue.offer(cur.right);
                }
                if (cur.left != null) {
                    queue.offer(cur.left);
                }
            }
            return res;
        }
    }
  • 相关阅读:
    拓扑排序
    最少硬币问题(无穷硬币)
    第三届蓝桥杯预赛
    矩形嵌套
    《心术》影评
    区间选点问题
    [转贴] 游戏服务器架构
    D3DXPlaneFromPoints 函数
    内存池实现
    [转]MMORPG游戏服务器端的设计
  • 原文地址:https://www.cnblogs.com/xuanlu/p/12151456.html
Copyright © 2011-2022 走看看