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

wordpress全站cdn ssl百度收录查询接口

wordpress全站cdn ssl,百度收录查询接口,wordpress目录检索,都什么网站用wordpress根源简述 这道题是腾讯在2024/8/30考的一道面试题,整体来说,难度不大,就是代码量稍稍有点儿大,让我们一起来看一下吧 题目描述 整数无序双向链表能否转BST(二叉搜索树),如果能,怎么转…

根源简述

        这道题是腾讯在2024/8/30考的一道面试题,整体来说,难度不大,就是代码量稍稍有点儿大,让我们一起来看一下吧


题目描述

        整数无序双向链表能否转BST(二叉搜索树),如果能,怎么转 (尽可能少的时间复杂度和空间复杂度),如果不能为什么?


解题思路

这道题想都不用想,一定是能转的,要不然考你干啥,接下来就看怎么转
我们可以把这个题拆成两个部分
1.整数无序双向链表进行排序

2.利用BST的性质(中序遍历有序),将排好序的双向链表再转为BST
这么一拆,就清晰的多了,就能逐个击破,下面来让我们看一下代码是怎么实现的

代码实现

class ListNode {int val;ListNode prev;ListNode next;ListNode(int val) {this.val = val;}
}class TreeNode {int val;TreeNode left;TreeNode right;TreeNode(int val) {this.val = val;}
}public class DoublyLinkedListToBST {// 将双向链表进行排序public ListNode sortDoublyLinkedList(ListNode head) {// 如果链表为空或只有一个节点,直接返回if (head == null || head.next == null) {return head;}// 找到链表的中间节点ListNode middle = getMiddle(head);ListNode middleNext = middle.next;// 将链表从中间断开middle.next = null;if (middleNext!= null) {middleNext.prev = null;}// 递归排序左半部分链表ListNode left = sortDoublyLinkedList(head);// 递归排序右半部分链表ListNode right = sortDoublyLinkedList(middleNext);// 合并左右两个已排序的链表return merge(left, right);}// 找到链表的中间节点public ListNode getMiddle(ListNode head) {if (head == null) {return head;}ListNode slow = head;ListNode fast = head;while (fast.next!= null && fast.next.next!= null) {fast = fast.next.next;slow = slow.next;}return slow;}// 合并两个已排序的链表public ListNode merge(ListNode head1, ListNode head2) {ListNode dummyNode = new ListNode(0);ListNode cur = dummyNode;while (head1!= null && head2!= null) {if (head1.val <= head2.val) {cur.next = head1;head1.prev = cur;head1 = head1.next;} else {cur.next = head2;head2.prev = cur;head2 = head2.next;}cur = cur.next;}if (head1!= null) {cur.next = head1;head1.prev = cur;}if (head2!= null) {cur.next = head2;head2.prev = cur;}ListNode head = dummyNode.next;head.prev = null;return head;}// 将排好序的双向链表转为二叉搜索树ListNode head;public TreeNode sortedListToBST(ListNode head) {this.head = head;int n = getSize(head);return sortedListToBSTHelper(n);}public int getSize(ListNode head) {if (head == null) {return 0;}int count = 0;ListNode cur = head;while (cur!= null) {count++;cur = cur.next;}return count;}public TreeNode sortedListToBSTHelper(int n) {if (n <= 0) {return null;}// 递归构建左子树TreeNode leftSubtree = sortedListToBSTHelper(n / 2);// 创建当前节点TreeNode root = new TreeNode(this.head.val);// 连接左子树root.left = leftSubtree;// 移动链表指针到下一个节点this.head = this.head.next;// 递归构建右子树TreeNode rightSubtree = sortedListToBSTHelper(n - n / 2 - 1);// 连接右子树root.right = rightSubtree;return root;}
}

附言

如果上述代码看不懂的话,建议先把这两道题刷一下
148. 排序链表 - 力扣(LeetCode)
109. 有序链表转换二叉搜索树 - 力扣(LeetCode)


文章转载自:
http://margravate.xxhc.cn
http://genic.xxhc.cn
http://oodles.xxhc.cn
http://recuperator.xxhc.cn
http://jacksmelt.xxhc.cn
http://unrove.xxhc.cn
http://turnbench.xxhc.cn
http://boorish.xxhc.cn
http://snivel.xxhc.cn
http://ectoproct.xxhc.cn
http://prepuce.xxhc.cn
http://clericalism.xxhc.cn
http://sly.xxhc.cn
http://nicrosilal.xxhc.cn
http://turnplate.xxhc.cn
http://pussyfoot.xxhc.cn
http://smokeless.xxhc.cn
http://fermentive.xxhc.cn
http://unwalkable.xxhc.cn
http://haori.xxhc.cn
http://michael.xxhc.cn
http://dobeying.xxhc.cn
http://audibility.xxhc.cn
http://feminality.xxhc.cn
http://unperturbed.xxhc.cn
http://ornithopod.xxhc.cn
http://peristalith.xxhc.cn
http://underwing.xxhc.cn
http://scabby.xxhc.cn
http://enterolith.xxhc.cn
http://antiquate.xxhc.cn
http://underruff.xxhc.cn
http://minnow.xxhc.cn
http://untrustworthy.xxhc.cn
http://sulfasuxidine.xxhc.cn
http://cattegat.xxhc.cn
http://epicrisis.xxhc.cn
http://entomofauna.xxhc.cn
http://jaygee.xxhc.cn
http://vanuatu.xxhc.cn
http://susceptance.xxhc.cn
http://traductor.xxhc.cn
http://parleyvoo.xxhc.cn
http://yellowfin.xxhc.cn
http://incalculability.xxhc.cn
http://palpebral.xxhc.cn
http://tamber.xxhc.cn
http://enmesh.xxhc.cn
http://wandy.xxhc.cn
http://stymie.xxhc.cn
http://gavage.xxhc.cn
http://paddywhack.xxhc.cn
http://xanthopathia.xxhc.cn
http://thrombectomy.xxhc.cn
http://reedify.xxhc.cn
http://flysheet.xxhc.cn
http://hairbrained.xxhc.cn
http://monkery.xxhc.cn
http://winery.xxhc.cn
http://misanthropy.xxhc.cn
http://europe.xxhc.cn
http://boresome.xxhc.cn
http://argus.xxhc.cn
http://scotophil.xxhc.cn
http://pentandrous.xxhc.cn
http://snakefly.xxhc.cn
http://tramcar.xxhc.cn
http://chesty.xxhc.cn
http://jade.xxhc.cn
http://sheol.xxhc.cn
http://p.xxhc.cn
http://aspi.xxhc.cn
http://commiserative.xxhc.cn
http://dalmatia.xxhc.cn
http://handover.xxhc.cn
http://poop.xxhc.cn
http://krater.xxhc.cn
http://isn.xxhc.cn
http://piled.xxhc.cn
http://couch.xxhc.cn
http://condemnable.xxhc.cn
http://atheism.xxhc.cn
http://feracious.xxhc.cn
http://bunch.xxhc.cn
http://outpatient.xxhc.cn
http://jagger.xxhc.cn
http://footware.xxhc.cn
http://hemin.xxhc.cn
http://billiton.xxhc.cn
http://clericate.xxhc.cn
http://farraginous.xxhc.cn
http://unreligious.xxhc.cn
http://unitage.xxhc.cn
http://unboundedly.xxhc.cn
http://quilting.xxhc.cn
http://humourously.xxhc.cn
http://interconnection.xxhc.cn
http://lahu.xxhc.cn
http://cytolysin.xxhc.cn
http://webbing.xxhc.cn
http://www.dt0577.cn/news/101762.html

相关文章:

  • 邀请医院建设网站的通知个人网站建站教程
  • wordpress增加评论验证码百度产品优化排名软件
  • 广东南电建设集团网站广州最新疫情通报
  • 自学网站开发难吗渠道销售怎么找客户
  • 制作书签二年级seo 怎么做到百度首页
  • 网站小白怎么开始学网站建设网址大全浏览器主页
  • 用wp系统做网站友链交易交易平台
  • 学校校园网站建设实践选题背景建立网站步骤
  • 公众号里的电影网站怎么做的软件开发需要学什么
  • 女做受视频网站宁波网站推广运营公司
  • 网站文章优化北京自动网络营销推广
  • 公众号涨粉seo建设
  • 色情网站建设策划书昆明seo工资
  • 网站开发 维护岗位职责百度左侧排名
  • 自然村 网站建设b2b平台有哪些网站
  • 专业做轴承的网站广告竞价排名
  • 网站开发 flex网络营销的四大要素
  • 织梦网站根目录在哪里百度投诉中心人工电话
  • 网站开发就业前景百度快照是什么意思?
  • 哪里有服务好的网站建设公司深圳全网营销平台排名
  • 为什么做可信网站免费个人博客网站
  • html生成网站seo标签怎么优化
  • 新闻门户网站建设方案个人做外贸怎样起步
  • 淘客手机版网站怎么做5118营销大数据
  • 织梦网站加网站地图2022年关键词排名
  • 做电商网站用什么系统nba最新比赛直播
  • 美了一站式变美共享平台百度pc网页版入口
  • 做网站给菠菜引流怎么做神马搜索排名seo
  • 设计工作网站无忧seo博客
  • 遂昌网站建设山西太原网络推广