当前位置:
首页 >
leetcode -day19 Convert Sorted List to Binary Search Tree
发布时间:2025/3/21
28
豆豆
生活随笔
收集整理的这篇文章主要介绍了
leetcode -day19 Convert Sorted List to Binary Search Tree
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
1、
《新程序员》:云原生和全面数字化实践50位技术专家共同创作,文字、视频、音频交互阅读
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的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 面试题整理19 矩阵Z字形扫描
- 下一篇: leetcode -day23 Cons