[Leetcode]109. Convert Sorted List to Binary Search Tree
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Leetcode]109. Convert Sorted List to Binary Search Tree相关的知识,希望对你有一定的参考价值。
Given a singly linked list where elements are sorted in ascending order, convert it to a heightbalanced 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; } * } */ class Solution { public TreeNode sortedListToBST(ListNode head) { if (head==null) //如果一开始传进来的是空链表,返回null return null; if (head.next==null) //递归终止条件 return new TreeNode(head.val); ListNode p = head,q = head,m = head; //快慢指针找中间值 while (q!=null&&q.next!=null){ q = q.next.next; p = p.next; } q = p.next; TreeNode root = new TreeNode (p.val); while (m.next!=p) m = m.next; m.next = null; root.left = sortedListToBST(head); //分治 root.right = sortedListToBST(q); return root; } }
以上是关于[Leetcode]109. Convert Sorted List to Binary Search Tree的主要内容,如果未能解决你的问题,请参考以下文章
[LeetCode] 109. Convert Sorted List to Binary Search Tree
Leetcode109. Convert Sorted List to Binary Search Tree
LeetCode-109-Convert Sorted List to Binary Search Tree
leetcode109. Convert Sorted List to Binary Search Tree