TreeNode *buildTree(ListNode *&list,int n)
{
if (n == 0)
return NULL;
TreeNode *root = new TreeNode(0);
root->left = buildTree(list,n / 2);
root->val = list->val;
list = list->next;
root->right = buildTree(list,n - n / 2 - 1);
return root;
}
TreeNode* sortedListToBST(ListNode* head)
{
int size = 0;
ListNode *p = head;
while (p)
{
size++;
p = p->next;
}
p = head;
ListNode *list = head;
return buildTree(list,size);
}
有序鏈表轉換爲平衡二叉樹(BST)
有序單鏈錶轉換爲平衡二叉樹。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.