Given a singly linked list where elements are sorted in ascending order, convert it to a height balanced BST.
BST
public TreeNode SortedListToBST(ListNode head) { TreeNode tree = null; if(head == null) return tree; if(head.next == null) return new TreeNode(head.val); //find the middle pionter; var walker = head; var runner = head; var prev = new ListNode(-1); while(runner != null && runner.next != null) { prev = walker; walker = walker.next; runner = runner.next.next; } prev.next =null; //root tree = new TreeNode(walker.val); //subtree tree.left = SortedListToBST(head); tree.right = SortedListToBST(walker.next); return tree; }