描述:
給出乙個所有元素以公升序排序的單鏈表,將它轉換成一棵高度平衡的二分查詢樹
樣例:
2
1->2->3 => / \
1 3
思路:
折半取煉表中的元素作為其根節點,左半部分作為其左子樹,右半部份作為其右子樹。不斷遞迴。
相比於陣列轉換二叉查詢樹,多了些
鍊錶的遍歷而已。
ac**:
/**
* definition of listnode
* class listnode
* }* definition of treenode:
* class treenode
* }*/class solution
if(lenth==1)
return new treenode(head->val);
else
treenode*root=new treenode(pr->next->val);
root->right=sortedlisttobst(pr->next->next);
pr->next=null;
root->left=sortedlisttobst(head);
return root;}}
};
排序列表轉換為二分查詢樹
開始接觸鍊錶問題。從朋友那得到指導,喚醒了以前的記憶,鍊錶還是手動加上head比較好處理。返回的時候返回head next比較好。此題用遞迴即可,快慢指標的應用,可以找到鍊錶中點,如果不用手動加head的方法處理起來就異常艱難。另外遞迴也好久沒寫遺忘了。寫一下備忘。第一次寫的時候 slow next...
題目 排序列表轉換為二分查詢樹
給出乙個所有元素以公升序排序的單鏈表,將它轉換成一棵高度平衡的二分查詢樹 您在真實的面試中是否遇到過這個題?樣例 標籤 expand 相關題目 expand 解題思路 遞迴 鍊錶操作即可。definition for listnode.public class listnode definition...
有序鍊錶轉換為二分查詢樹
給出乙個所有元素以公升序排序的單鏈表,將它轉換成一棵高度平衡的二分查詢樹 樣例 1 輸入 array 1,2,3 輸出 2 1 3 樣例 2 輸入 2,3,6,7 輸出 3 2 6 7 解釋 可能會有多個符合要求的結果,返回任意乙個即可。definition of listnode class li...