首页 > 学院 > 开发设计 > 正文

leetcode: Convert Sorted List to Binary Search Tree

2019-11-10 17:11:18
字体:
来源:转载
供稿:网友

这道题一开始我就想错方向了。

记得算法与数据结构中有一种数据结构是AVL树,AVL不考虑插入的数字是否排列有序。

本题中用到的思想有 快慢指针  递归(涉及到树的操作大多是递归)

代码如下:

class Solution {public:    TreeNode* sortedListToBST(ListNode* head) {        if(!head) return NULL;        if(!head->next) return new TreeNode(head->val);        ListNode* fast=head->next;        ListNode* slow=head;        while(fast->next&&fast->next->next)        {            fast=fast->next->next;            slow=slow->next;        }        ListNode* mid=slow->next;        slow->next=NULL;        TreeNode* ret=new TreeNode(mid->val);        ret->left=sortedListToBST(head);        ret->right=sortedListToBST(mid->next);        return ret;    }};


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表