109. Convert Sorted List to Binary Search Tree LeetCode

来源:互联网 发布:线切割yh编程系统 编辑:程序博客网 时间:2024/06/06 17:21

题意:把排序好的链表转换成二叉搜索树。
题解:和把排序好的数组转换成二叉搜索树是一个思路,每次从中间分开。这里用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;    }};
0 0
原创粉丝点击