109. Convert Sorted List to Binary Search Tree

Description

Given the head of 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 which the depth of the two subtrees of every node never differ by more than 1.

Constraints

  • The numner of nodes in head is in the range [0, 2 * 10^4].

  • -10^5 <= Node.val <= 10^5

Approach

Examples

Input: head = [-10, -3, 0, 5, 9]

Output: [0, -3, 9, -10, null, 5]

Explanation: One possible answer is [0, -3, 9, -10, null, 5], which represents the shown height balanced BST.

Solutions

// Definition for singly-linked list.
public class ListNode {
	int val;
	ListNode next;
	
	ListNode() {}
	
	ListNode(int val) { this.val = val; }
	
	ListNode(int val, ListNode next) { 
		this.val = val; 
		this.next = next;
	}
}

Follow up

Last updated

Was this helpful?