2011-06-24 45 views
-2

任何人都可以提出一個算法將二進制搜索樹轉換爲單向鏈表。 另請注意,在轉換的每個步驟中,列表中的最高值節點應該指向列表中最小值的節點。BST到鏈接列表

+0

歡迎來到Stack Overflow! :)如果這是一項家庭作業問題,請在問題底下直接添加[標籤:家庭作業]標籤到您的帖子中[編輯]鏈接。我們想知道我們什麼時候有家庭作業問題,所以我們可以提供更好的解決方案來尋找解決方案... – sarnold

+0

@Sarnold:如果您專注於提供算法,那就更好了。 – Pritpal

+0

它不是一個家庭作業問題,它的面試問題微軟 – Pritpal

回答

2
if(!tree.isEmpty()) 
{ 
    Node node1 = tree.removeMin(); 
    Node node2; 
    Node currentNode; 
    Node temp; 
    if(!tree.isEmpty()) 
    { 
     node2 = tree.removeMax(); 
     node2.setNext(node1); 
     currentNode = node2; 
     while(!tree.isEmpty()) 
     { 
      temp = tree.removeMin(); 
      temp.setNext(currentNode); 
      currentNode = temp; 
     } 
    } 
    Node head = temp; 
} 

這符合單向鏈表,並且列表中的最大值總是指向列表中的最小值。沒有其他資格被給出。

+0

- 你真的需要審查你的算法。 – Pritpal

+0

我意外地做了一些修改,同時讓它更清晰。我相信現在應該工作得很好。 –

+0

- 它仍然不正確,請檢查 – Pritpal