递归将二叉树转换为双向链表
来源:互联网 发布:淘宝拍卖汽车可信吗 编辑:程序博客网 时间:2024/05/19 10:37
总体思路是递归,将二叉树转换为记录了头尾指针的双向链表,函数如下
void convertTreeToListHelp(TreeNode *root, TreeNode *&head, TreeNode *&tail){head = root;tail = root;if (!root)return;TreeNode *pLeftHead = NULL; TreeNode *pLeftTail = NULL; convertTreeToListHelp(root->left, pLeftHead, pLeftTail); TreeNode *pRightHead = NULL; TreeNode *pRightTail = NULL; convertTreeToListHelp(root->right, pRightHead, pRightTail); if (pLeftTail) { head = pLeftHead; pLeftTail->right = root; root->left= pLeftTail; } if (pRightHead) { tail = pRightTail; root->right = pRightHead; pRightHead->left = root; }}
上述过程稍显罗嗦
更为简洁的方式如下:
TreeNode *head = NULL;TreeNode *tail = NULL;TreeNode convertTreeToList(TreeNode *root){If (root == NULL) return NULL;convertTreeToList(root->left);Root->left = tail;if (tail == NULL)tail = head = root;elseTail->right = root;Tail = root;convertToList(root->right);return head;}
- 递归将二叉树转换为双向链表
- 将二叉搜索树转换为双向链表
- 将二叉搜索树转换为双向链表
- 将二叉树转换为排序双向链表
- 二叉树转换为双向链表
- 二叉树转换为双向链表
- 二叉树转换为双向链表
- 二叉树转换为双向链表
- 二叉树转换为双向链表
- 二叉树转换为双向链表
- 树:将二叉搜索树转换为排序的双向链表
- 将二叉树结构转换为双向链表 java语言实现
- 如何将一个排序二叉树转换为循环双向链表
- 将二叉查找树转换为有序的双向链表
- 用C语言将二叉树转换为双向链表
- 将二叉树转化为双向链表
- 将二叉搜索树转化为双向链表
- 将搜索二叉树转化为双向链表
- visual studio的调试技巧
- 最小生成树---prime
- GIPS-NetEQ 最大化语音质量、最小化延迟
- 寻找K大数的各种方法
- myeclipse9.0 svn安装
- 递归将二叉树转换为双向链表
- Android.mk文档规范
- 指针和引用的区别
- jQuery选择器
- 信号与槽
- 覆写onEnter和onExit,场景切换出的大问题
- 最小生成树---Kruskal
- Python 模块介绍
- English