二叉树——958. 二叉树的完全性检验
二叉树——958. 二叉树的完全性检验
题目:

思路:
参考了题解,依靠层序遍历。

代码:
class Solution {
public:
bool isCompleteTree(TreeNode* root) {
// 辅助栈帮助层序遍历
queue<TreeNode*> q;
// 记录是否已经遍历到null
bool reachNull = false;
q.push(root);
while(!q.empty()){
TreeNode* curr = q.front();
q.pop();
if(curr == nullptr){
// 发现空结点
reachNull = true;
continue;
}
else
{
// 发现null节点后出现非空节点,发现不完全了
if(reachNull){
return false;
}
// 继续遍历左右节点
q.push(curr->left);
q.push(curr->right);
}
}
return true;
}
};
Rank:

Tips:
别忘了层序遍历,层序遍历的话记住借助栈。

浙公网安备 33010602011771号