欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

leetcode -day19 Convert Sorted List to Binary Search Tree

发布时间:2025/3/21 28 豆豆
生活随笔 收集整理的这篇文章主要介绍了 leetcode -day19 Convert Sorted List to Binary Search Tree 小编觉得挺不错的,现在分享给大家,帮大家做个参考.
1、 

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.

分析:将一个升序排列的链表转换为平衡二叉搜索树,采用递归的方式,先找到链表的中点,作为二叉树的根,然后递归求解左右子树。

如下:

class Solution { public:TreeNode *sortedListToBST(ListNode *head) {if(!head){return NULL;}if(!head->next){return new TreeNode(head->val);}ListNode* midNode = findMidNode(head);TreeNode* root = new TreeNode(midNode->val);TreeNode* leftSubTree = sortedListToBST(head);TreeNode* rightSubTree = sortedListToBST(midNode->next);if(leftSubTree){root->left = leftSubTree;}if(rightSubTree){root->right = rightSubTree;}return root;}ListNode* findMidNode(ListNode* head){ListNode* node1 = head;if(!node1->next){return node1;}ListNode* node2 = head->next;while(node2 && node2->next && node2->next->next){node2 = node2->next;node2 = node2->next;node1 = node1->next;}ListNode* midNode = node1->next;node1->next = NULL;return midNode;} };

《新程序员》:云原生和全面数字化实践50位技术专家共同创作,文字、视频、音频交互阅读

总结

以上是生活随笔为你收集整理的leetcode -day19 Convert Sorted List to Binary Search Tree的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。