提及可對鏈接列表數據結構進行2個修改,以便將其轉換爲二叉樹數據結構?將鏈接列表結構轉換爲具有2個修改的二叉樹結構
-1
A
回答
1
這個問題相當含糊,但這是我認爲可能的含義。
在鏈表使用的結構將有一個next
指針:
struct LinkedListNode {
LinkedListNode *next;
// data element(s)
};
二叉樹使用將有left
和right
指針的結構:
struct BinaryTreeNode {
BinaryTreeNode *left;
BinaryTreeNode *right;
// data element(s)
}
所以,我猜問題涉及的兩個修改可能是:
- 的
next
指針更改爲left
指針 - 添加
right
指針
0
我沒有得到一點「2修改」, 而是一個LinkedList
轉換爲BinaryTree
,我們可以按照兩種方法
- 自下而上
- 自上而下
1)自頂向下的方法:
在這種方法中,我們可以把兩個LinkedList
子列表和中間部分將是父節點的每個 呼籲左邊和右邊的子榜單遞歸方法。
這背後的基本邏輯就可以了,
ListToBinaryTree(LinkedList list, int start, int end) {
mid -> start + (end - start)/2;
left -> ListToBinaryTree(list, start, mid-1);
right -> ListToBinaryTree(list, mid+1, end);
}
2)自下而上的方法:
在這種方法中,我們將第一和比父元素創建子元素。
這背後的基本邏輯就可以了,
ListToBinaryTree(ListNode *& list, int start, int end) {
mid -> start + (end - start)/2;
leftChild -> ListToBinaryTree(list, start, mid-1);
parent -> new BinaryTree(list -> data);
parent -> left = leftChild;
list = list -> next;
parent -> right = ListToBinaryTree(list, mid+1, end);
}
希望這將是有益的。
相關問題
- 1. 二叉樹結構(自引用結構)
- 2. 將結構數組轉換爲二叉搜索樹
- 3. 二叉樹數據結構
- 4. 二叉樹和結構
- 5. 將鏈表轉換爲二叉樹
- 6. 將二叉搜索樹轉換爲JAVA中的鏈接列表
- 7. 將鏈接列表轉換爲二叉搜索樹?
- 8. 將具有層級結構的字典轉換爲列表
- 9. 將csv轉換爲JSON樹結構?
- 10. Oracle:將樹結構轉換爲XML
- 11. C將樹結構轉換爲JSON
- 12. 檢查二叉樹是否具有相同的結構
- 13. 具有靜態根節點的C#二叉樹數據結構
- 14. 二叉搜索樹(結構形式)
- 15. Java解析二叉樹結構
- 16. 可比用於二叉樹結構
- 17. 麻煩與二叉樹結構實現
- 18. 需要創建二叉樹結構
- 19. 將對象列表轉換爲json樹結構
- 20. 如何將文件名列表轉換爲樹結構?
- 21. 列表樹結構
- 22. 包含多個陣列的二叉樹結構
- 23. 鏈接列表,類結構?
- 24. 爲什麼決策樹結構只是sklearn DecisionTreeClassifier的二叉樹?
- 25. 將表達式轉換爲二叉樹
- 26. 修改鏈接列表中的結構中的字段
- 27. 將結構附加到鏈接列表
- 28. 將IImage轉換爲結構
- 29. 將結構轉換爲JSON
- 30. 轉換陣列樹狀JSON結構
這裏沒有足夠的上下文。什麼樣的修改?你是否限於可以在運行時完成的事情?還是你包括可以在源代碼級完成的結構修改?或者是其他東西? –
我不知道什麼樣的修改。我認爲這是一些簡單的理論,但我無法理解。 我不需要編程,但我需要解釋如何鏈接列表數據結構可以更改爲二叉樹。 這是過去的紙質問題。 我不知道如何更好地解釋。 – Charlot
哪種'LinkedList'?單獨,雙重還是其他? –