Convert Sorted List to Binary Search Tree LeetCode
Posted 冰凌花花~
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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; } }
以上是关于Convert Sorted List to Binary Search Tree LeetCode的主要内容,如果未能解决你的问题,请参考以下文章
109.Convert sorted list to BST
Convert Sorted List to Binary Search Tree
Convert Sorted List to Balanced BST
109. Convert Sorted List to Binary Search Tree