Convert sorted list to binary search tree
2017-03-11 12:31
369 查看
从head指针开始,直到
fast指针为
null或者
fast->next==null为止,找到这个链表的中间节点。利用这个中间节点构造出该子树的根节点,再将中间节点的左边的节点的
next指针置空,目的是不使用额外参数控制该段的边界。递归地初始化左子树,以及右子树。
class Solution { public: TreeNode *sortedListToBST(ListNode *head) { // 处理空节点和单节点的情况 if (head == nullptr) return nullptr; if (head->next == nullptr) return new TreeNode(head->val); // 寻找中间节点 ListNode *slow = head, *fast = head->next->next; while (fast != nullptr && fast->next != nullptr) { fast = fast->next->next; slow = slow->next; } // 分别处理左右节点,并把中间的节点提取出来 TreeNode *node = new TreeNode(slow->next->val); node->right = sortedListToBST(slow->next->next); slow->next = nullptr; node->left = sortedListToBST(head); return node; } };
相关文章推荐
- LeetCode: Convert Sorted List to Binary Search Tree
- [LeetCode] Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- 【ATT】Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- [Leetcode]Convert Sorted List to Binary Search Tree
- leetcode 66: Convert Sorted List to Binary Search Tree
- leetcode 66: Convert Sorted List to Binary Search Tree
- leetcode Convert Sorted List to Binary Search Tree
- [LeetCode] Convert Sorted List to Binary Search Tree
- LeetCode: Convert Sorted List to Binary Search Tree
- [LeetCode] Convert Sorted List to Binary Search Tree, Solution
- [Leetcode] Convert Sorted List to Binary Search Tree
- LeetCode:Convert Sorted List to Binary Search Tree
- [LeetCode]Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- Convert Sorted Array(List) to Binary Search Tree
- Leetcode: Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree