2.15 将搜索二叉树转换成双向链表

题目】:

  对二叉树的节点来说,有本身的值域,有指向上一个节点和下一个节点的指针。在结构上,两种结构有相似性,现在有一棵搜索二叉树,请将其转换为一个有序的双向链表

  例如,节点定义为:  

1 public class Node{
2           public int value;
3           public Node left;
4           public Node right;
5           public Node(int data){
6                     this.value = data;
7           }
8 }

  一棵搜索二叉树如图所示:

                  6

              4                         7

                                        2               5                        9

                                   1        3                                8

  这棵搜索二叉树转换后的双向链表从头到尾依次是1~9,对每一个节点来说,原来的right指针等价于转换后的next指针,原来的left指针等价于转换后的last指针,最后返回转换后的双向链表头节点

题目来源:左程云老师《程序员代码面试指南》

猜你喜欢

转载自www.cnblogs.com/latup/p/10149103.html