9.21-9.27

1.Flatten Binary Tree to Linked List

 1 //dfs、前序遍历一下即可
 2 class Solution {
 3 public:
 4     void dfs(TreeNode* root, TreeNode* &pre)
 5     {
 6         if (root == NULL) return ;
 7         pre->left = root;
 8         pre = pre->left;
 9         if (root->left) dfs(root->left, pre);
10         if (root->right) dfs(root->right, pre);
11     }
12     void work(TreeNode *root)
13     {
14         if (root == NULL) return;
15         if (root->left) work(root->left);
16         root->left = NULL;
17     }
18     void flatten(TreeNode* root) {
19         if (root == NULL) return ;
20         TreeNode* tmp = new TreeNode(-1);
21         dfs(root, tmp);
22         TreeNode *t = root;
23         while (t)
24         {
25             t->right = t->left;
26             t = t->left;
27         }
28         t = root;
29         work(t);
30     }
31 };

2.Convert Sorted List to Binary Search Tree

 1 //递归,根据postorder来做,postorder最后一个值肯定是root,根据这个来做即可。
 2 class Solution {
 3 public:
 4     TreeNode* build(vector<int>& inorder, vector<int>& postorder, int left1, int right1, int left2, int right2)
 5     {
 6         if (left1 > right1) return NULL;
 7         TreeNode *tmp = new TreeNode(postorder[right2]);
 8         if (left1 == right1)
 9             return tmp;
10         int i, j;
11         for (i = right1; i >= left1; --i)
12             if (inorder[i] == postorder[right2]) break;
13         tmp->right = build(inorder, postorder, i+1, right1, right2-1-(right1-i-1), right2-1);
14         tmp->left = build(inorder, postorder, left1, i-1, left2, right2-1-(right1-i-1)-1);
15     }
16
17     TreeNode* buildTree(vector<int>& inorder, vector<int>& postorder) {
18         return build(inorder, postorder, 0, inorder.size()-1, 0, postorder.size()-1);
19     }
20 };

时间: 2024-10-23 09:41:23

9.21-9.27的相关文章

NYOJ 搜索题目汇总 NYOJ 20、21、27、42、58、82、202、284、325、353、488、491、523、592、722

NYOJ 搜索题目汇总 NYOJ 20 #include<iostream> #include<cstdio> #include<cstring> #include<string> #include<vector> #include<algorithm> using namespace std; int pre[100005]; vector<int>v[100005];//存储每个结点相邻的边 void DFS(int

装饰器前奏(2017年8月20日 21:10:27)

实现装饰器知识储备 1.函数即"变量" 2.高阶函数 3.嵌套函数 # author :Yeison.Z import time def timmer(func): def warpper(*args,**kwargs): start_time=time.time() func() stop_time=time.time() print('the func run time is %s' %(stop_time-start_time)) return warpper @timmer d

Linux 基础入门 第二周9.21~9.27

一.学习内容 本周主要学习内容主要贴合: 在进行<深入理解计算机系统>这门课的实验中没有遇到什么大问题,学习内容与上周实验<linux基础入门>有相似之处.本实验中的内容比较贴切老师上课所讲述的内容,可以说是对上课内容的一次再现,也是对课上知识点的补充. 在进行完上述学习之后进而学习了<Vim编辑器>这一章节的内容,在学习内容上没有太大的困难,主要都是相应的指令的练习,按部就班的完成就行.但在个人来看学习内容中有过多细碎的指令,在实际运用当中会有一定困难,但感觉主要联系

Centos7系统编译安装Mysql5.7.21

环境说明 : centos7.4 64位虚拟机 mysql5.7.21.tar.gz 编译安装需要虚拟机2G内存 [[email protected] ~]# uname -a Linux localhost.localdomain 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux 安装步骤如下: 1.安装依赖包: yum -y install gcc gcc-c++

7.27 11.1-11.5

11.1 LAMP架构介绍 LAMP即Linux+Apache(即httpd)+MySQL+PHP Apache:提供web服务的软件 MySQL:用于存储字符串的数据库软件,无法存储图片.声音等文件,主要用于存储文字性内容(帖子.消息.用户名密码信息.账户积分信息等) PHP: 一个脚本语言,类似shell,但比shell复杂,使用C语言开发,主要用于做网站,用PHP写的网站多用于PC端访问: 移动app也需要调用服务端的接口,在服务端取数据,假如数据存在mysql,mysql会和PHP通信,

sqoop同步mysql到hdfs

链接:http://pan.baidu.com/s/1gfHnaVL 密码:7j12 mysql-connector version 5.1.32 若在安装版本过程遇到些问题,可参考http://dbspace.blog.51cto.com/6873717/1875955,其中一些问题的解决办法 下载并安装: cd /usr/local/tar -zxvf sqoop2-1.99.3-cdh5.0.0.tar.gzmv sqoop2-1.99.3-cdh5.0.0 sqoop添加sqoop2到系

ORACLE 11G在同一台linux服务器从实例1全库导入到实例2上

前期导出命令: [root@powerlong4 ~]# su - oracle [oracle@powerlong4 ~]$ export ORACLE_SID=pt1; [oracle@powerlong4 ~]$ expdp \'sys/systestpd as sysdba\' DIRECTORY=dir_dump_t3 FULL=YES DUMPFILE=expdpfull_pd_20150529_02.dmp ...... 1,开始导入 先在实例2上建立管道目录: [[email p

hibernate—QBC

QBC查询就是通过使用Hibernate提供的Query By Criteria API来查询对象,这种API封装了SQL语句的动态拼装,对查询提供了更加面向对象的功能接口.我们看下面的示例程序: Criteria criteria=session.createCriteria(User.class);   criteria.add(Expression.eq("name","zx"));   criteria.add(Expression.eq("age

poj1159 Palindrome(最长公共子序列)

Palindrome Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 52966   Accepted: 18271 Description A palindrome is a symmetrical string, that is, a string read identically from left to right as well as from right to left. You are to write a

深入理解iPhone数据持久化(手把手教你iphone开发 – 基础篇)

在所有的移动开发平台数据持久化都是很重要的部分:在j2me中是rms或保存在应用程序的目录中,在symbian中可以保存在相应的磁盘目录中和数据库中.symbian中因为权限认证的原因,在3rd上大多数只能访问应用程序的private目录或其它系统共享目录.在iphone中,apple博采众长,提供了多种数据持久化的方法,下面笔者会逐个进行详细的讲解. iphone提供的数据持久化的方法,从数据保存的方式上讲可以分为三大部分:属性列表.对象归档.嵌入式数据库(SQLite3).其他方法. 一.属