当前位置: 首页 > news >正文

leetcode第一刷_Convert Sorted List to Binary Search Tree

好,二叉搜索树粉末登场,有关他的问题有这么几个,给你一个n,如何求全部的n个节点的二叉搜索树个数?能不能把全部的这些二叉搜索树打印出来?

这道题倒不用考虑这么多,直接转即可了,我用的思想是分治,每次找到一半的位置,分离出中间节点,作为新子树的根节点,然后递归构造前半部分和后半部分。

class Solution {
public:
    TreeNode *sortedListToBST(ListNode *head) {
        if(head == NULL)
            return NULL;
        int len = 0;
        ListNode *p = head;
        while(p){
            len++;
            p = p->next;
        }
        int hlen = len/2;
        ListNode *pp = head, *pre = head;
        for(int i=0;i<hlen;i++){
            pre = pp;
            pp = pp->next;
        }
        ListNode *newHead = pp->next;
        pre->next = NULL;
        pp->next = NULL;
        TreeNode *root = new TreeNode(pp->val);
        if(pp != head)  root->left = sortedListToBST(head);
        if(newHead) root->right = sortedListToBST(newHead);
        return root;
    }
};


相关文章:

  • Result Maps collection already contains value for
  • Ubuntu上Netbeans8.0字体的一次蛋疼体验
  • js 实现replaceAll
  • 性能测试结果分析(中级测试)
  • C++ 多线程入门1
  • OSGi Event Admin Service
  • jQuery ajax - post() 方法
  • 软件培训
  • 如何优化Mysql千万级快速分页
  • MySQL InnoDB体系结构
  • C++ 小复习
  • 在Linux中让echo命令显示带颜色的字
  • ORACLE用户操作的一些常用操作总结【weber出品】
  • QuiltView 瀑布流 (第三方)
  • nginx源码编译
  • 【node学习】协程
  • 【编码】-360实习笔试编程题(二)-2016.03.29
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • Angular 2 DI - IoC DI - 1
  • Angular2开发踩坑系列-生产环境编译
  • Apache Spark Streaming 使用实例
  • crontab执行失败的多种原因
  • express.js的介绍及使用
  • golang 发送GET和POST示例
  • Java面向对象及其三大特征
  • Lsb图片隐写
  • spring boot 整合mybatis 无法输出sql的问题
  • webgl (原生)基础入门指南【一】
  • yii2权限控制rbac之rule详细讲解
  • 不上全站https的网站你们就等着被恶心死吧
  • 前端每日实战 2018 年 7 月份项目汇总(共 29 个项目)
  • 前嗅ForeSpider中数据浏览界面介绍
  • 小而合理的前端理论:rscss和rsjs
  • 学习笔记DL002:AI、机器学习、表示学习、深度学习,第一次大衰退
  • linux 淘宝开源监控工具tsar
  • mysql 慢查询分析工具:pt-query-digest 在mac 上的安装使用 ...
  • 京东物流联手山西图灵打造智能供应链,让阅读更有趣 ...
  • #Ubuntu(修改root信息)
  • (175)FPGA门控时钟技术
  • (32位汇编 五)mov/add/sub/and/or/xor/not
  • (Matalb回归预测)PSO-BP粒子群算法优化BP神经网络的多维回归预测
  • (MATLAB)第五章-矩阵运算
  • (编译到47%失败)to be deleted
  • (二)windows配置JDK环境
  • (分类)KNN算法- 参数调优
  • (亲测)设​置​m​y​e​c​l​i​p​s​e​打​开​默​认​工​作​空​间...
  • (转)Oracle 9i 数据库设计指引全集(1)
  • (自用)learnOpenGL学习总结-高级OpenGL-抗锯齿
  • 、写入Shellcode到注册表上线
  • .bat批处理(八):各种形式的变量%0、%i、%%i、var、%var%、!var!的含义和区别
  • .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets?
  • .NET Core WebAPI中使用swagger版本控制,添加注释
  • .NET Framework 4.6.2改进了WPF和安全性
  • .Net Remoting(分离服务程序实现) - Part.3
  • .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况