资讯专栏INFORMATION COLUMN

leetcode109. Convert Sorted List to Binary Search

高胜山 / 2717人阅读

摘要:题目要求给一个按照递增顺序排列的链表。将该链表转化为平衡二叉树。思路和代码在这里需要注意的是,因为提供的数据结构为链表,所以我们必须顺序遍历才能知道该链表的长度以及该链表的中间位置。并依次递归左子节点和右子节点。

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

给一个按照递增顺序排列的链表。将该链表转化为平衡二叉树。

思路和代码

在这里需要注意的是,因为提供的数据结构为链表,所以我们必须顺序遍历才能知道该链表的长度以及该链表的中间位置。在这里,我们可以采用递归的形式,而且在递归中我们通过双指针的方式找到其中的中间节点。并依次递归左子节点和右子节点。

    public TreeNode sortedListToBST(ListNode head) {
        if(head==null) return null;
        return sortedListToBST(head, null);
    }
    
    public TreeNode sortedListToBST(ListNode head, ListNode tail){
        if(head==tail) return null;
        ListNode fast = head;
        ListNode slow = head;
        while(fast!=tail && fast.next!=tail){
            fast = fast.next.next;
            slow = slow.next;
        }
        TreeNode cHead = new TreeNode(slow.val);
        cHead.left = sortedListToBST(head, slow);
        cHead.right = sortedListToBST(slow.next, tail);
        return cHead;
    }


想要了解更多开发技术,面试教程以及互联网公司内推,欢迎关注我的微信公众号!将会不定期的发放福利哦~

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/67564.html

相关文章

  • [LeetCode] 109. Convert Sorted List to Binary Sear

    Problem Given a singly linked list where elements are sorted in ascending order, convert it to a height balanced BST. For this problem, a height-balanced binary tree is defined as a binary tree in whi...

    dongfangyiyu 评论0 收藏0
  • 109. Converted Sorted List to Binary Search Tree

    摘要:题目答案这里是不能等于也省去了把从中间分隔时,需要添加的麻烦 题目:Given a singly linked list where elements are sorted in ascending order, convert it to a height balanced BST. 答案: /** * Definition for singly-linked list. * p...

    plokmju88 评论0 收藏0
  • [Leetcode] Convert Sorted Array/List to Binary Sea

    摘要:我们可以用和两个值来限定子树在链表中的位置,通过递归的方式,深入找到最左边,然后开始顺序遍历链表链表当前节点作为全局变量,这样无论递归在哪我们都能拿到,同时建树。代码先递归的计算左子树创造根节点最后递归的计算右子树 Convert Sorted List to Binary Search Tree Given a singly linked list where elements ar...

    wpw 评论0 收藏0
  • [LeetCode] Convert Sorted Array to Binary Search T

    摘要:思路根据的性质,问题转化为找一个里的中位数,用一个函数,一路找中点,再通过前序遍历的方法把起来代码 Convert Sorted Array to Binary Search Tree With Minimal Height Given a sorted (increasing order) array, Convert it to create a binarytree with m...

    willin 评论0 收藏0
  • 前端 | 每天一个 LeetCode

    摘要:在线网站地址我的微信公众号完整题目列表从年月日起,每天更新一题,顺序从易到难,目前已更新个题。这是项目地址欢迎一起交流学习。 这篇文章记录我练习的 LeetCode 题目,语言 JavaScript。 在线网站:https://cattle.w3fun.com GitHub 地址:https://github.com/swpuLeo/ca...我的微信公众号: showImg(htt...

    张汉庆 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<