leetcode -day19 Convert Sorted List to Binary Search Tree
生活随笔
收集整理的這篇文章主要介紹了
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