您的位置:首页 > 其它

109. Convert Sorted List to Binary Search Tree LeetCode

2016-02-16 19:22 447 查看
题意:把排序好的链表转换成二叉搜索树。

题解:和把排序好的数组转换成二叉搜索树是一个思路,每次从中间分开。这里用slow和fast去找链表的中间节点。

class Solution {
public:
TreeNode* sortedListToBST(ListNode* head) {
if(head == NULL) return NULL;
if(head->next == NULL)
{
return new TreeNode(head->val);
}
ListNode *fast = head->next->next, *slow = head;
while(fast && fast->next)
{
fast = fast->next->next;
slow = slow->next;
}
ListNode *temp = slow->next;
TreeNode *ans = new TreeNode(temp->val);
slow->next = NULL;
ans->left = sortedListToBST(head);
ans->right = sortedListToBST(temp->next);
return ans;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode