提及可对链接列表数据结构进行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'?单独,双重还是其他? –