IMWeb提升营Day5 | 训练题26:二叉搜索树与双向链表
来源:互联网 发布:mac版的炒股软件 编辑:程序博客网 时间:2024/05/18 01:40
题目描述
输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。
思路
/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { }};*//* * 思路:按照中序遍历,把节点放进vector里,然后遍历一遍vector,重新分配指针 */class Solution {private: vector<TreeNode*> treelist; void inOrder(TreeNode* root){ if(root != NULL){ inOrder(root->left); treelist.push_back(root); inOrder(root->right); } } public: TreeNode* Convert(TreeNode* pRootOfTree) { inOrder(pRootOfTree); int len = treelist.size(); if(len == 0) return NULL; if(len == 1) return pRootOfTree; for(int i = 0; i < len; i++){ if(i == 0) { treelist[i]->left = NULL; treelist[i]->right = treelist[i+1]; } else if(i == len-1) { treelist[i]->left = treelist[i-1]; treelist[i]->right = NULL; } else{ treelist[i]->left = treelist[i-1]; treelist[i]->right = treelist[i+1]; } } return treelist[0]; }};
阅读全文
0 0
- IMWeb提升营Day5 | 训练题26:二叉搜索树与双向链表
- IMWeb提升营Day5 | 训练题25:复杂链表的复制
- IMWeb提升营Day5 | 训练题27:字符串的排列
- IMWeb提升营Day4 | 训练题23:二叉搜索树的后序遍历序列
- IMWeb提升营Day1 | 训练题4:重建二叉树
- IMWeb提升营Day7 | 训练题39:平衡二叉树
- IMWeb提升营Day5
- IMWeb提升营Day5 | 训练题28:数组中出现超过一半的数字
- IMWeb提升营Day5 | 训练题29:最小的K个数
- IMWeb提升营Day5 | 训练题30:连续数组的最大和
- IMWeb提升营Day3 | 训练题15:反转链表
- IMWeb提升营Day3 | 训练题18:二叉树的镜像
- IMWeb提升营Day4 | 训练题22:从上往下打印二叉树
- IMWeb提升营Day4 | 训练题24:二叉树中和为某一值的路径
- IMWeb提升营Day7 | 训练题38:二叉树的深度
- IMWeb提升营 —Day5(补)
- 面试训练二叉搜索树建双向链表
- 二叉搜索树与双向链表
- PAT 1016(排序+模拟)
- RSETclient和postman--两个常用数据接口测试工具
- Magento开发教程
- tcp发送和接收的原理
- TINA_PRO_6中文版.rar
- IMWeb提升营Day5 | 训练题26:二叉搜索树与双向链表
- 统计文章相同单词
- POJ 1328 Radar Installation (贪心)
- Qt5.8 ubuntu下面连接mysql
- 一些常用的数据库
- android recyclerview 的单击处理
- C++的基础知识
- Opencv学习——图像滤波
- Linux和Win7双系统,重装Win7后,如何找回Linux启动项