//将搜索二叉树转换成双向链表
//利用队列
public class Node{
public int value;
public Node left;
public Node right;
public Node(int data){
this.value=data;
}
}
public Node searchBinaryTreeConvertDoubleLinkedList(Node head){
Queue<Node> queue=new Queue<Node>();
inOrderToQueue(head,queue);
if(queue.isEmpty()){
return head;
}
head=queue.poll();
Node pre=head;
pre.left=null;
Node cur=null;
while(!queue.isEmpty()){
cur=queue.poll();
pre.right=cur;
cur.left=pre;
pre=cur;
}
pre.right=null;
return head;
}
public void inOrderToQueue(Node head,Queue<Node> queue){
if(head==null){
inOrderToQueue(head.left,queue);
queue.offer(head);
inOrderToQueue(head.right.queue);
}
}
链表-将搜索二叉树转换成双向链表
猜你喜欢
转载自blog.csdn.net/weixin_42146769/article/details/88391131
今日推荐
周排行