【LeetCode笔记】958. 二叉树的完全性检验(Java、二叉树、BFS)
生活随笔
收集整理的這篇文章主要介紹了
【LeetCode笔记】958. 二叉树的完全性检验(Java、二叉树、BFS)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 題目描述
- 思路 && 代碼
- 層級遍歷法
- BFS
- 二刷
題目描述
- 考察對完全二叉樹性質的理解
思路 && 代碼
層級遍歷法
- 一開始試了自底向上的DFS,過了90%的用例,還是考慮得不夠全 = =
- 層級遍歷:代碼比較多,但是總體效率和方法2差不多
BFS
- 注意:要使用能存儲 null 值的集合類(比如 ArrayDeque 就不行)
- 核心思路:當前節點為空時,如果后面(包括右邊、下面)有節點則不是完全二叉樹。
二刷
class Solution {public boolean isCompleteTree(TreeNode root) {// jojo的奇妙做法。。不知道怎么想的,反正 A 了,問題不大!List<TreeNode> list = new LinkedList<>();Queue<TreeNode> queue = new ArrayDeque<>();queue.offer(root);list.add(root);while(!queue.isEmpty()) {TreeNode temp = queue.poll();list.add(temp.left);list.add(temp.right);if(temp.left != null) {queue.offer(temp.left);}if(temp.right != null) {queue.offer(temp.right);}}boolean flag = false;for(TreeNode temp : list) {if(temp == null) {flag = true;} else if (flag) {return false;}}return true;} }- 簡單寫法,八行代碼光速解決~
總結
以上是生活随笔為你收集整理的【LeetCode笔记】958. 二叉树的完全性检验(Java、二叉树、BFS)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【LeetCode笔记】69. x 的平
- 下一篇: date类型_Quartz与Date--