题目

原始地址:https://leetcode.com/problems/convert-sorted-list-to-binary-search-tree/#/description

/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode(int x) { val = x; }* }*/
/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode(int x) { val = x; }* }*/
public class Solution {public TreeNode sortedListToBST(ListNode head) {}
}

描述

给定一个按照升序排序的单链表,将它转换成一个高度平衡的二叉搜索树。

分析

如果要保持二叉搜索树高度平衡,那么要求插入的顺序和二叉树按层遍历的顺序是一致的,也即每次都找到链表的中间节点并插入,并将中间节点的两侧分成两个子链表分别转换成中间节点的左右子树,如此递归进行。

解法

/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode(int x) { val = x; }* }*/
/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode(int x) { val = x; }* }*/
public class Solution {public TreeNode sortedListToBST(ListNode head) {return insertNode(head, null);}private TreeNode insertNode(ListNode head, ListNode tail) {if (head == null || head == tail) {return null;}ListNode fast = head, slow = head;while (fast != tail && fast.next != tail) {fast = fast.next.next;slow = slow.next;}TreeNode root = new TreeNode(slow.val);root.left = insertNode(head, slow);root.right = insertNode(slow.next, tail);return root;}
}

转载于:https://www.cnblogs.com/fengdianzhang/p/6826770.html

109. Convert Sorted List to Binary Search Tree相关推荐

  1. 【链表递归构造二叉树】LeetCode 109. Convert Sorted List to Binary Search Tree

    LeetCode 109. Convert Sorted List to Binary Search Tree Solution1:我的答案 偷鸡摸狗的做法 /*** Definition for s ...

  2. LeetCode: 109. Convert Sorted List to Binary Search Tree

    题目 Given a singly linked list where elements are sorted in ascending order, convert it to a height b ...

  3. 【leetcode】109. Convert Sorted List to Binary Search Tree

    题目如下: Given a singly linked list where elements are sorted in ascending order, convert it to a heigh ...

  4. LeetCode 109. Convert Sorted List to Binary Search Tree

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

  5. Convert Sorted Array to Binary Search Tree - LeetCode

    目录 题目链接 注意点 解法 小结 题目链接 Convert Sorted Array to Binary Search Tree - LeetCode 注意点 不要访问空结点 题目要求的是平衡二叉搜 ...

  6. leetcode -day19 Convert Sorted List to Binary Search Tree

    1.  Convert Sorted List to Binary Search Tree Given a singly linked list where elements are sorted ...

  7. LeetCode: Convert Sorted Array to Binary Search Tree 解题报告

    Convert Sorted Array to Binary Search Tree Given an array where elements are sorted in ascending ord ...

  8. 【数组递归构造二叉树】LeetCode 108. Convert Sorted Array to Binary Search Tree

    LeetCode 108. Convert Sorted Array to Binary Search Tree Solution1:我的答案 构造二叉树利用递归 /*** Definition fo ...

  9. [LeetCode] Convert Sorted Array to Binary Search Tree

    Given an array where elements are sorted in ascending order, convert it to a height balanced BST. Hi ...

最新文章

  1. Chapter12:动态内存
  2. jQuery 操作 DOM
  3. pyotrch nn.Conv2d中groups参数的理解
  4. 【采用-决策引擎】一文看懂风控决策引擎搭建思路
  5. shiro教程(1)-基于url权限管理
  6. 详解协同感知数据集OPV2V: An Open Benchmark Dataset and Fusion Pipeline for Perception with V2V Communication
  7. Caused by: org.springframework.boot.web.server.PortInUseException: Port 8081 is already in use 端口占用
  8. 静态方法和实例方法(mark)
  9. 16.定位模板,布局和样式
  10. 深度学习在时空大数据分析中的应用
  11. Python使用-错误“name ‘requests‘ is not defined”的探查
  12. 数字逻辑——七段数码管
  13. 怎么用浏览器访问计算机文件共享,如何用ES文件浏览器完全共享电脑里的文件流程...
  14. centos 安装Htseq_APPNode管理面板安装使用教材
  15. 基于MSP430G2553点亮TM1637数码管
  16. 联发科、联芯TD合作后期走势分析
  17. 广和通5G模组FM150-AE在树莓派+Ubuntu22.04 LTS系统下即插即用免驱免拨号演示
  18. 【前端系列教程之HTML5】06_HTML5新标签
  19. Surface book2 1060显卡性能较低的解决方法
  20. PHP 伪静态规则、写法

热门文章

  1. Android书籍推荐
  2. 大数据量,海量数据 处理方法总结(转)
  3. 从Image Caption Generation理解深度学习
  4. 多类SVM的损失函数
  5. 30天提升技术人的写作力-第一天
  6. Flask 教程 第十六章:全文搜索
  7. 利用最小堆找出10亿个数中最大的10000个数
  8. 给mysql的root %用户添加grant权限。并给创建的用户赋予权限
  9. hibernate映射集合属性
  10. 【Leetcode】103. 二叉树的锯齿形层次遍历