【说明】:
本文是左程云老师所著的《程序员面试代码指南》第二章中“将搜索二叉树转换成双向链表”这一题目的C++复现。
本文只包含问题描述、C++代码的实现以及简单的思路,不包含解析说明,具体的问题解析请参考原书。
感谢左程云老师的支持。
【题目】:
对于二叉树的节点来说,有本身的值域,有指向左孩子和右孩子的两个指针;对双向链表的节点来说,有本身的值域,有指向上一个节点和下一个节点的指针。在结构上,两种结构有相似性,现有一棵搜索二叉树,请将其转为成一个有序的双向链表。
例如,节点定义为:
1 class Node 2 8 { 3 9 public: 4 10 Node(int data) 5 11 { 6 12 value = data; 7 13 left = NULL; 8 14 right = NULL; 9 15 } 10 16 public: 11 17 int value; 12 18 Node *left; 13 19 Node *right; 14 20 };