加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

LeetCode 958. Check Completeness of a Binary Tree

发布时间:2020-12-14 04:42:23 所属栏目:大数据 来源:网络整理
导读:原题链接在这里:https://leetcode.com/problems/check-completeness-of-a-binary-tree/ 题目: Given a binary tree,determine if it is a? complete binary tree . Definition of a complete binary tree from?Wikipedia: In a complete binary tree every

原题链接在这里:https://leetcode.com/problems/check-completeness-of-a-binary-tree/

题目:

Given a binary tree,determine if it is a?complete binary tree.

Definition of a complete binary tree from?Wikipedia:
In a complete binary tree every level,except possibly the last,is completely filled,and all nodes in the last level are as far left as possible. It can have between 1 and 2h?nodes inclusive at the last level h.

Example 1:

Input: [1,2,3,4,5,6]
Output: true Explanation: Every level before the last is full (ie. levels with node-values {1} and {2,3}),and all nodes in the last level ({4,6}) are as far left as possible. 

Example 2:

Input: [1,null,7]
Output: false Explanation: The node with value 7 isn‘t as far left as possible.

Note:

  1. The tree will have between 1 and 100 nodes.

题解:

Perform level order traversal on the tree,if popped node is not null,then add its left and right child,no matter if they are null or not.

If the tree is complete,when first met null in the queue,then the rest should all be null. Otherwise,it is not complete.

Time Complexity: O(n).

Space: O(n).

AC Java:

 1 /**
 2  * Definition for a binary tree node.
 3  * public class TreeNode {
 4  *     int val;
 5  *     TreeNode left;
 6  *     TreeNode right;
 7  *     TreeNode(int x) { val = x; }
 8  * }
 9  */
10 class Solution {
11     public boolean isCompleteTree(TreeNode root) {
12         LinkedList<TreeNode> que = new LinkedList<TreeNode>();
13         que.add(root);
14         while(que.peek() != null){
15             TreeNode cur = que.poll();
16             que.add(cur.left);
17             que.add(cur.right);
18         }
19         
20         while(!que.isEmpty() && que.peek() == null){
21             que.poll();
22         }
23         
24         return que.isEmpty();
25     }
26 }

类似Complete Binary Tree Inserter.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读