109. Convert Sorted List to Binary Search Tree
2018-01-08 20:12
344 查看
欢迎fork and star:Nowcoder-Repository-github
109. Convert Sorted List to Binary Search Tree
题目
Given a singly linked list where elements are sorted in ascending order, convert it to a height balanced BST. For this problem, a height-balanced binary tree is defined as a binary tree in which the depth of the two subtrees of every node never differ by more than 1. Example: Given the sorted linked list: [-10,-3,0,5,9], One possible answer is: [0,-3,9,-10,null,5], which represents the following height balanced BST: 0 / \ -3 9 / / -10 5
解析
主要考察链表求中间节点统一输入输出接口,需要将前后两段指针分开,也可以再加入一个尾指针参数
这个题是这几天做的最顺利的,一次AC掉
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: TreeNode *sortedListToBST(ListNode *head) { ListNode* slow = head; ListNode* fast = head; ListNode* pre = NULL; if (!head) { return NULL; } if (!head->next) { TreeNode* temp = new TreeNode(head->val); return temp; } while (fast&&fast->next) { pre = slow; slow = slow->next; fast = fast->next->next; } TreeNode* root = new TreeNode(slow->val); pre->next = NULL; slow = slow->next; root->left = sortedListToBST(head); root->right = sortedListToBST(slow); return root; } };
题目来源
109. Convert Sorted List to Binary Search Tree相关文章推荐
- 109. Convert Sorted List to Binary Search Tree LeetCode
- Leetcode 109 Convert Sorted List to Binary Search Tree 有序单链表构造平衡二插查找树
- 109. Convert Sorted List to Binary Search Tree
- 109. Convert Sorted List to Binary Search Tree
- 【LeetCode-面试算法经典-Java实现】【109-Convert Sorted List to Binary Search Tree(排序链表转换成二叉排序树)】
- [Leetcode] #109 Convert Sorted List to Binary Search Tree
- <LeetCode OJ> 109 / 108 Convert Sorted ( List / Array ) to Binary Search Tree
- leetcode 109 Convert Sorted List to Binary Search Tree
- LinkedList-109-Convert Sorted List to Binary Search Tree
- 109-Convert Sorted List to Binary Search Tree
- LeetCode109 Convert Sorted List to Binary Search Tree
- LeetCode109 Convert Sorted List to Binary Search Tree
- 109. Convert Sorted List to Binary Search Tree
- LeetCode: Convert Sorted List to Binary Search Tree [109]
- Leetcode#109 Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree - LeetCode 109
- leetcode-109-Convert Sorted List to Binary Search Tree
- 109 Convert Sorted List to Binary Search Tree [Leetcode]
- 109 - Convert Sorted List to Binary Search Tree
- leetcode_c++:链表:Convert Sorted List to Binary Search Tree(109)