系列文章
【英雄哥七月集训】第 01天:数组
【英雄哥七月集训】第 02天:字符串
【英雄哥七月集训】第 03天:排序
【英雄哥七月集训】第 04天:贪心
【英雄哥七月集训】第 05天:双指针
【英雄哥七月集训】第 06天:滑动窗口
【英雄哥七月集训】第 07天:哈希表
【英雄哥七月集训】第 08天:前缀和
【英雄哥七月集训】第 09天:二分查找
【英雄哥七月集训】第 10天:位运算
【英雄哥七月集训】第 11天:矩阵
【英雄哥七月集训】第 12天:链表
【英雄哥七月集训】第 13天:双向链表
【英雄哥七月集训】第 14天:栈
【英雄哥七月集训】第 15天:深度优先搜索
【英雄哥七月集训】第 16天:队列
【英雄哥七月集训】第 17天:广度优先搜索
【英雄哥七月集训】第 18天:树
【英雄哥七月集训】第 19天:二叉树
一、958. 二叉树的完全性检验
958. 二叉树的完全性检验
leetcode958 java
class Solution {
boolean isleaf(TreeNode root){
return root.left==null&&root.right==null;
}
public boolean isCompleteTree(TreeNode root) {
if(root==null){
return true;
}
LinkedList<TreeNode> q = new LinkedList<>();
boolean leaf = false;
TreeNode l = null;
TreeNode r = null;
q.add(root);
while(!q.isEmpty()){
root = q.poll();
l = root.left;
r = root.right;
if ((leaf && (l!=null || r!=null)) ||
(l==null && r !=null)){
return false;
}
if(l!=null){
q.add(l);
}
if(r!=null){
q.add(r);
}
if(l==null || r==null){
leaf=true;
}
}
return true;
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
二、剑指 Offer 26. 树的子结构
剑指 Offer 26. 树的子结构
leetcode958 java
class Solution {
public boolean isSubStructure(TreeNode A, TreeNode B) {
if(A ==null || B == null){
return false;
}
return recur(A,B)||isSubStructure(A.left,B)||isSubStructure(A.right,B);
}
public boolean recur(TreeNode A, TreeNode B){
if(B==null) return true;
if(A==null||A.val!=B.val) return false;
return recur(A.left,B.left)&&recur(A.right,B.right);
}
}
总结