1 題目描述
給定一個二叉樹,判斷其是否為一個完全二叉樹。
來自Wikipedia的完全二叉樹定義:
在一個完全二叉樹中,除了最后一層可能未被完全填充外,其它所有層均被完全填充,且最后一層的節(jié)點盡可能靠左。
最后一層h的節(jié)點數(shù)介于區(qū)間[1, 2^h]。
注:節(jié)點數(shù)介于[1, 100]。
例子1:

輸入:[1,2,3,4,5,6]
輸出:true
例子2:

輸入:[1,2,3,4,5,null,7]
輸出:false
題目出處:
https://leetcode.com/problems/check-completeness-of-a-binary-tree/
2 解決思路
給節(jié)點編號,使用層次遍歷方式從編號為1的根節(jié)點開始遍歷二叉樹。
針對每次遍歷,判斷上一個兄弟節(jié)點的編號與當前編號是否連續(xù),若不連續(xù)則說明破壞了完全二叉樹的規(guī)則,返回false;
若遍歷到最后一個節(jié)點仍未發(fā)現(xiàn)破壞完全二叉樹規(guī)則的情況,則返回true。
3 Golang實現(xiàn)代碼
https://github.com/olzhy/leetcode/blob/master/958_Check_Completeness_Of_A_Binary_Tree/test.go

原文鏈接:https://leileiluoluo.com/posts/leetcode-check-completeness-of-a-binary-tree.html
本文作者:磊磊落落的博客,原創(chuàng)授權(quán)發(fā)布