import java.util.ArrayDeque;
import java.util.Queue;
/**
* @author xnl
* @Description:
* @date: 2022/7/25 21:15
*/
public class Solution {
public static void main(String[] args) {
Solution solution = new Solution();
CBTInserter node = new CBTInserter(new TreeNode(1, new TreeNode(2), null));
node.insert(3);
node.insert(4);
node.print();
}
}
class CBTInserter {
Queue<TreeNode> candidate;
TreeNode root;
public CBTInserter(TreeNode root) {
this.root = root;
candidate = new ArrayDeque<>();
Queue<TreeNode> queue = new ArrayDeque<>();
queue.offer(root);
while (!queue.isEmpty()){
TreeNode poll = queue.poll();
if (poll.left != null){
queue.offer(poll.left);
}
if (poll.right != null){
queue.offer(poll.right);
}
if (!(poll.left != null && poll.right != null)){
candidate.offer(poll);
}
}
}
public int insert(int val) {
TreeNode node = candidate.peek();
TreeNode cur = new TreeNode(val);
int res = node.val;
if (node.left == null){
node.left = cur;
} else {
node.right = cur;
candidate.poll();
}
candidate.offer(cur);
return res;
}
public TreeNode get_root() {
return root;
}
public void print(){
this.root.print();
}
}
class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode() {}
TreeNode(int val) { this.val = val; }
TreeNode(int val, TreeNode left, TreeNode right) {
this.val = val;
this.left = left;
this.right = right;
}
public void print(){
System.out.print(this.val + " ");
if (this.left != null){
this.left.print();
}
if (this.right != null){
this.right.print();
}
}
}
力扣:919. 完全二叉树插入器
于 2022-07-25 21:56:10 首次发布