当前位置: 首页 > 知识库问答 >
问题:

通过1遍历链表

窦凯定
2023-03-14

每次我们在堆中为链表分配内存时,我们都会得到一个地址,这个地址链接到链表的下一个变量,head是指向链表初始节点的指针。

如果我们做head=head1,那么它会指向下一个链表,或者指向堆的随机内存,或者指向堆中初学者列表的下一个内存。

共有2个答案

干善
2023-03-14

如果我们做head=head 1,那么它指向下一个链表,或者指向堆的随机内存,或者指向堆中初学者列表的下一个内存。

如果head最初指向正确类型的有效对象,则在该语句之后,head指向它最初指向的对象的末尾。这可能会也可能不会使它成为下一个节点的指针,这取决于许多因素,其中一些因素超出了您的控制,但通常head的新值不是下一个节点的指针。

加法运算对head最初指向的对象的重要性一无所知。对于任何类型的指针都是相同的操作。

闻人升
2023-03-14

您不应该首先访问它后面的内存区域。

我想你混淆了数组和链表的概念。如果您使用数组,那么head=head 1将为您提供数组中的下一个元素。但是在链表中,每个成员在内存中都有不同的位置,获得该位置的唯一方法是取消引用前一个元素的下一个成员

 类似资料:
  • 问题内容: 您好,我正在尝试创建一个遍历链表的for循环。对于每条数据,它将单独列出。我正在尝试在此处学习链接列表,因此请不要提供数组建议。有人知道怎么做吗? 示例输出: 187号航班 501航班 我的代码如下: 问题答案: 只需使用增强的for循环,就像使用数组一样:

  • 嘿,伙计们,我在让for循环工作时遇到了一些麻烦。myList是一个链表,其中填充了文件中的数字,我正在尝试遍历它并以一种(当前,下一个)的方式打印当前值和每个下一个值- 出于某种原因,for循环无法执行任何操作,或者更确切地说,代码在for循环的开始就中断了。如果我摆脱for循环并只是复制和粘贴 很多时候它会按照我的意愿工作,但我宁愿不这样做。for 循环语法看起来是正确的,如果 say cou

  • 问题 用层序遍历的方式来遍历二叉树。 解法 从二叉树根节点 root 开始,递归的对二叉树上的每个节点 i ,总是优先访问节点 i 以及与 i 处于同一高度的节点,然后再访问 i 以及与 i 处于同一高度的节点的孩子节点们。如图: 先序遍历、中序遍历和后序遍历都可以比较容易的用递归来实现,而层序遍历是无法用递归函数来实现的。我们可以借助队列来实现层序遍历。初始时将二叉树的根节点 root 放入队列

  • 问题 用后序遍历的方式来遍历二叉树。 解法 从二叉树根节点 root 开始,递归的对二叉树上的每个节点 i ,总是优先访问节点 i 的左孩子节点,然后访问 i 的右孩子节点,最后访问 i 节点本身。如图: 后序遍历的时间复杂度是 O(n) 。

  • 问题 用中序遍历的方式来遍历二叉树。 解法 从二叉树根节点 root 开始,递归的对二叉树上的每个节点 i ,总是优先访问节点 i 的左孩子节点,然后访问 i 节点本身,最后访问 i 的右孩子节点。如图: 中序遍历的时间复杂度是 O(n) 。

  • 问题 用先序遍历的方式来遍历二叉树。 解法 从二叉树根节点 root 开始,递归的对二叉树上的每个节点 i ,总是优先访问节点 i 本身,然后访问 i 的左孩子节点,最后访问 i 的右孩子节点。如图: 先序遍历的时间复杂度是 O(n) 。