/**
* Definition for a binary tree node.
* public 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;
* }
* }
*/
class CBTInserter {
TreeNode root;
Queue<TreeNode> que = new LinkedList();
public CBTInserter(TreeNode root) {
insert(root);
}
//仅做单纯的插入操作
public int insert(int val) {
TreeNode node = new TreeNode(val);
que.offer(node);
if(root == null){
root = node;
return -1;
}
TreeNode parent = que.peek();
if(parent.left == null){
parent.left = node;
}else{
parent.right = node;
que.poll();
}
return parent.val;
}
public TreeNode get_root() {
return root;
}
// 插入一个节点的时候,需要层序遍历该节点 按顺序插入
private void insert(TreeNode node){
Queue<TreeNode> tmpQue = new LinkedList();
tmpQue.offer(node);
while(! tmpQue.isEmpty()){
TreeNode poll = tmpQue.poll();
insert(poll.val);
if(poll.left != null){
tmpQue.offer(poll.left);
}
if(poll.right != null){
tmpQue.offer(poll.right);
}
}
}
}
【2022-07-25】
最新推荐文章于 2024-07-25 19:34:38 发布