【LeetCode】找树左下角的值 Java 题解
题目描述
给定一个二叉树的 根节点 root,请找出该二叉树的 最底层 最左边 节点的值。
假设二叉树中至少有一个节点。
复制代码
思路分析
今天的算法题目是二叉树处理题目,题目要求找出该二叉树的 最底层 最左边 节点的值。
分析这个题目,我们需要找到二叉树的最底层,然后找到最左边。由于树的结构特殊,我们需要遍历整个二叉树,找到最底层的最左边节点。可以采用层序遍历的方式实现。专业的术语是 BFS,BFS 全称是 Breadth First Search,中文名是宽度优先搜索,也叫广度优先搜索,是图上最基础、最重要的搜索算法之一。
所谓宽度优先。就是每次都尝试访问同一层的节点。 如果同一层都访问完了,再访问下一层。这样做的结果是,BFS 算法找到的路径是从起点开始的 最短 合法路径。换言之,这条路径所包含的边数最小。实现代码如下,供参考。
通过代码
复制代码
总结
上述算法的时间复杂度是 O(n),空间复杂度是 O(n)
坚持算法每日一题,加油!
版权声明: 本文为 InfoQ 作者【Albert】的原创文章。
原文链接:【http://xie.infoq.cn/article/f3fee1bf1d7bbc26aeb21243c】。文章转载请联系作者。
评论