Convert Sorted List to Binary Search Tree
来源:互联网 发布:手机数字键盘钢琴软件 编辑:程序博客网 时间:2024/06/16 22:46
二叉树
本题将listnode转化为BST
Convert Sorted List to Binary Search Tree
Given a singly linked list where elements are
本题将listnode转化为BST
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.
#include<iostream>#include<vector>using namespace std;struct ListNode{int val;ListNode *next;ListNode(int x) :val(x), next(nullptr) {}};struct TreeNode{int val;TreeNode *l;TreeNode *r;TreeNode(int x) :val(x), l(nullptr), r(nullptr) {}};class Solution{ public:ListNode *init(vector<int> &vec) //链表的初始化{ListNode dumy(-1);ListNode *temp = &dumy;for (int i = 0; i < vec.size(); i++, temp = temp->next){temp->next = new ListNode(vec[i]);}return dumy.next;}TreeNode *SortlistToBST(ListNode *head){return sortlistToBST(head, listlen(head));}TreeNode *sortlistToBST(ListNode *head, int len){if (len == 0) return nullptr;if (len == 1) return new TreeNode(head->val);TreeNode *root = new TreeNode(nth_node(head, len/2+1)->val);root->l = sortlistToBST(head, len / 2);root->r = sortlistToBST(nth_node(head, len / 2 + 2), (len - 1) / 2);//(len-1)/2+len/2+1=lenreturn root;}ListNode *nth_node(ListNode* head, int len){while (--len){head = head->next;}return head;}int listlen(ListNode *head) //中序输出{int n = 0;while (head != nullptr){++n;head = head->next;}return n;}void midorder(TreeNode *root){if (root != nullptr){midorder(root->l);cout<< root->val<<",";midorder(root->r);}}};int main(){Solution s1; vector<int> vec{ 1, 2, 3, 4, 5};ListNode *list;list = s1.init(vec);s1.midorder(s1.SortlistToBST(list));cout << endl;system("pause");return 0;}
0 0
- Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- convert sorted list to binary search tree
- Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- mysql5.6源码安装
- [Audio app]如何避免后台音乐被low memory结束生命
- iOS 系统跳转
- Qt配置Android环境
- AOJ 2249 图论之最短路
- Convert Sorted List to Binary Search Tree
- Android 把XML定义的控件动态实例化
- php如何处理这样的数据?
- iOS 第三方支付 支付宝支付
- leetcode笔记:Number of 1 Bits
- JS私有变量和静态私有变量
- leetcode——219—— Contains Duplicate II
- 查找轮廓总结
- ofstream和ifstream详细用法