九度OJ 1503:二叉搜索树与双向链表
来源:互联网 发布:linux search file 编辑:程序博客网 时间:2024/06/15 09:30
#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<vector>#include<cmath>#include<map>#include<string>#include<set>#include<queue>using namespace std;typedef long long LL;const int INF=0x7f7f7f7f;const int inf=0x80808080;struct TreeNode{ int val; TreeNode *left,*right; TreeNode(int x):val(x),left(NULL),right(NULL) {}};void read(TreeNode **node){ int x; scanf("%d",&x); if(x==0) *node=NULL; else { *node=new TreeNode(x); read(&(*node)->left); read(&(*node)->right); }}void GetSortedList(TreeNode *node,TreeNode **beg,TreeNode **end){ if(node->left==NULL&&node->right==NULL) *beg=node,*end=node; else { TreeNode *begL=NULL,*endL=NULL; if(node->left!=NULL) { GetSortedList(node->left,&begL,&endL); endL->right=node; node->left=endL; *beg=begL; } else *beg=node; TreeNode *begR=NULL,*endR=NULL; if(node->right!=NULL) { GetSortedList(node->right,&begR,&endR); begR->left=node; node->right=begR; *end=endR; } else *end=node; }}TreeNode* TreeToSortedList(TreeNode *root){ if(root==NULL) return NULL; TreeNode *beg=NULL,*end=NULL; GetSortedList(root,&beg,&end); return beg;}void out(TreeNode *root){ while(root!=NULL) { printf("%d ",root->val); root=root->right; }}void erase(TreeNode *node){ while(node!=NULL) { TreeNode *temp=node; node=node->right; delete temp; }}int main(){ int n; scanf("%d",&n); while(n--) { TreeNode *root; read(&root); TreeNode *newroot=TreeToSortedList(root); out(newroot); printf("\n"); erase(root); } return 0;}
0 0
- 九度OJ 1503:二叉搜索树与双向链表
- 九度OJ-题目1503:二叉搜索树与双向链表
- 【剑指Offer面试编程题】题目1503:二叉搜索树与双向链表--九度OJ
- 题目1503:二叉搜索树与双向链表-九度
- 九度 题目1503:二叉搜索树与双向链表
- 九度Online:题目1503:二叉搜索树与双向链表
- 【剑指Offer面试题】 九度OJ1503:二叉搜索树与双向链表
- 九:二叉搜索树与双向链表(二叉搜索树转为有序双向链表)
- 二叉搜索树的建立与遍历 九度oj
- 二叉搜索树与双向链表
- 二叉搜索树与双向链表
- 二叉搜索树与双向链表
- 二叉搜索树与双向链表
- 二叉搜索树与双向链表
- 二叉搜索树与双向链表
- 二叉搜索树与双向链表
- 二叉搜索树与双向链表
- 二叉搜索树与双向链表
- hive 介绍
- C语言考试复习
- iOS 预留帖。
- android 守护线程的理解
- 最大公约数
- 九度OJ 1503:二叉搜索树与双向链表
- gcc参数详解
- XQuery Reference
- UMeng"Application received signal SIGSEGV"错误分析
- 微信 模板消息的使用
- 享元模式(flyweight)
- 可靠传输UDP库汇总
- Longest Substring with At Most Two Distinct Characters
- java实现约瑟夫环