• Convert Sorted List to Binary Search Tree LeetCode


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

    给出一个所有元素以升序排序的单链表,将它转换成一棵高度平衡的二分查找树

    /**
     * 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 {
        private ListNode current;
        public int getListLength(ListNode head) {
            if (head == null) {
                return 0;
            }
            int size = 0;
            ListNode temp = head;
            while (temp != null) {
                size++;
                temp = temp.next;
            }
            return size;
        }
        public TreeNode getCurrentTreeNodeHelper(int size) {
            if (size == 0) {
                return null;
            }
            TreeNode left = getCurrentTreeNodeHelper(size / 2);
            TreeNode root = new TreeNode(current.val);
            current  = current.next;
            TreeNode right = getCurrentTreeNodeHelper(size - 1 - size / 2);
            
            root.left = left;
            root.right = right;
            return root;
        }
        public TreeNode sortedListToBST(ListNode head) {
            current = head;
            int size = getListLength(head);
            TreeNode dummy = getCurrentTreeNodeHelper(size);
            
            return dummy;
        }
    }
  • 相关阅读:
    [Luogu 3794]签到题IV
    [JSOI 2015]最大公约数
    [BZOJ 5123][Lydsy1712月赛]线段树的匹配
    [BZOJ 5127][Lydsy1712月赛]数据校验
    [Codeforces Educational Round 71]Div. 2
    [NOIp 2018]all
    [BZOJ 2134]单选错位
    [hihoCoder 1384]Genius ACM
    [POJ 3233]Matrix Power Series
    [USACO 09FEB]Bullcow
  • 原文地址:https://www.cnblogs.com/iwangzheng/p/5817501.html
Copyright © 2020-2023  润新知