博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[LeetCode] Convert Sorted List to Binary Search Tree DFS,深度搜索
阅读量:6881 次
发布时间:2019-06-27

本文共 1282 字,大约阅读时间需要 4 分钟。

Given a singly linked list where elements are sorted in ascending order, convert it to a height balanced BST.

 

Hide Tags
   
 

    这题是将链表变成二叉树,比较麻烦的遍历过程,因为链表的限制,所以深度搜索的顺序恰巧是链表的顺序,通过设置好递归函数的参数,可以在深度搜索时候便可以遍历了。
 
TreeNode * help_f(ListNode *&curList,int lft,int rgt)

 

全部代码:

#include 
using namespace std;/** * Definition for singly-linked list. */struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {}};/** * Definitiosn for binary tree */struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) {}};class Solution {public: TreeNode *sortedListToBST(ListNode *head) { int len=0; ListNode * p = head; while(p!=NULL){ len++; p=p->next; }// cout<
<
rgt) return NULL; int mid=(lft+rgt)/2; TreeNode *lftCld = help_f(curList,lft,mid-1); TreeNode *parent =new TreeNode(curList->val); parent->left=lftCld; curList=curList->next; parent->right=help_f(curList,mid+1,rgt); return parent; }};int main(){ ListNode n1(0); Solution sol; sol.sortedListToBST(&n1); return 0;}

 

转载于:https://www.cnblogs.com/Azhu/p/4227191.html

你可能感兴趣的文章
iOS中通知的添加和移除
查看>>
企业分布式微服务云SpringCloud SpringBoot mybatis (一)服务的注册与发现(Eureka)...
查看>>
批量下载图片
查看>>
Java内存模型(Memory Model)
查看>>
某大型网站迁移纪实(一)
查看>>
C#进行Socket 连接发送和接收数据
查看>>
即时编辑插件-jeditable|已迁移
查看>>
Linux下CA证书服务配置
查看>>
《JMeter从入门到精通》之一——开始你的第一个JMeter脚本
查看>>
从技术到管理,艰难的转型
查看>>
如何制作Windows 8系统U盘
查看>>
Linux之cgi实现系统主机监控
查看>>
我的友情链接
查看>>
[sig09]Rendering Technology at Black Rock Studio
查看>>
我的友情链接
查看>>
【Java每日一题】20170329
查看>>
Android 70道面试题汇总不再愁面试
查看>>
Sitecore7.5 安装指南 -- 补充内容
查看>>
mybaits like查询
查看>>
zookeeper报错问题
查看>>