【leetcode】【单链表】【109】Convert Sorted List to Binary Search Tree
来源:互联网 发布:淘宝流量和访客怎么刷 编辑:程序博客网 时间:2024/05/22 04:46
#include<iostream>using namespace std;struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {} };struct TreeNode {int val; TreeNode *left;TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) {}};class Solution {public:TreeNode* inorderTraversal(ListNode* &head, int start, int end){ //中序遍历if (start > end)return NULL;int mid = start + (end - start) / 2;TreeNode* left = inorderTraversal(head, start, mid - 1);TreeNode* root = new TreeNode(head->val);root->left = left;head = head->next;root->right = inorderTraversal(head, mid + 1, end);return root;}TreeNode* sortedListToBST(ListNode* head) {int numOfNodes = 0;ListNode* cur = head;while (cur){++numOfNodes;cur = cur->next;}return inorderTraversal(head, 0, numOfNodes - 1);}ListNode* createList(ListNode* head){int numOfNode;int value;cout << "please input number of listNode:";cin >> numOfNode;cin >> value;head = new ListNode(value);ListNode* cur = head;for (int i = 1; i < numOfNode; ++i){cin >> value;ListNode* temp = new ListNode(value);cur->next = temp;cur = temp;}//cur->next = head;return head;}void printNode(ListNode* head){ListNode* cur = head;while (cur){cout << cur->val << " ";cur = cur->next;}cout << endl;}};void inorder(TreeNode* node){if (node){inorder(node->left);cout << node->val << " ";inorder(node->right);}}int main(){ListNode* head = NULL;Solution lst;head = lst.createList(head);lst.printNode(head);TreeNode* root = lst.sortedListToBST(head);if(root){inorder(root);cout << endl;}else{cout << "empty tree" << endl;}system("pause");return 0;}
0 0
- 【leetcode】【单链表】【109】Convert Sorted List to Binary Search Tree
- LeetCode(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
- LeetCode 109 Convert Sorted List to Binary Search Tree
- [leetcode 109] Convert Sorted List to Binary Search Tree
- [LeetCode 109]Convert Sorted List to Binary Search Tree
- 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
- LeetCode(109) Convert Sorted List to Binary Search Tree
- Leetcode #109 Convert Sorted List to Binary Search Tree
- leetcode 109: Convert Sorted List to Binary Search Tree
- LeetCode(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
- 【LEETCODE】109-Convert Sorted List to Binary Search Tree
- LeetCode 109 Convert Sorted List to Binary Search Tree
- 20150527运算符表达式
- Hdu 5262 最强密码(dp)
- 关于Android Studio无法更新安装而导致无法启动的问题
- 20150527常量变量
- 异常
- 【leetcode】【单链表】【109】Convert Sorted List to Binary Search Tree
- STM32M4 内部flash编程
- 20150527常量变量_练习_运算符表达式练习
- memcache的配置
- 第7条:避免使用终极方法
- HDU1788 Chinese remainder theorem again 最小公倍数
- 二叉树的遍历
- 异常
- leetcode[141&142]:Linked List Cycle I & II