在 Python 中旋转链表2024年8月29日 | 阅读 7 分钟 给定一个单链表的头节点和一个数字 K,开发一个程序,将链表从最后一个节点开始顺时针旋转 K 个位置。 示例输入-1 输出 1 40 -> 50 -> 10 -> 20 -> 30 说明 在这种情况下,我们对给定的链表进行了两次旋转。在第一次旋转时,5 是头节点,4 是尾节点,而在第二次旋转链表时,4 是头节点,3 是尾节点。 输入-2 输出 2 30 -> 10 -> 20 说明 这里,我们对链表进行了 4 次旋转。 算法 1 - 通过改变第 k 个节点的 next 指针进行旋转直观理解 对于这种策略,我们必须保留三个指针:指向 (k + 1)th 节点、kth 节点以及 kth 节点前一个节点的指针。目标是遍历给定的链表直到第 k 个节点,并将 (k + 1)th 指针处的节点设置为 NULL,然后将链表最后一个节点的 next 指向当前头节点,之后 (k + 1)th 节点将成为我们链表的新头节点。 算法
代码实现代码 输出 The original linked list is: 1 4 5 5 7 2 1 5 3 9 The rotated Linked list is: 5 5 7 2 1 5 3 9 1 4 时间复杂度:此方法的时间复杂度为 O(n)。这是因为我们遍历了给定的链表一次来旋转链表,其中 n 是链表中的节点数。 空间复杂度:此方法的空间复杂度为 O(1)。它是常数的,因为程序中没有分配额外的空间。 算法 2 - 通过旋转 K 个节点直观理解 这里的方法与上一个类似。在这种方法中,单链表被转换为类似循环链表,然后从头节点向前移动 k-1 步,但在移动之前,将 (k - 1)th 节点的 next 设置为 null,并将下一个节点设置为头节点。 算法
代码实现代码 输出 The original List is: 1 2 3 4 5 6 7 8 The rotated linked list is: 6 7 8 1 2 3 4 5 时间复杂度:此方法的时间复杂度为 O(n)。这是因为我们遍历了给定的链表一次来旋转链表,其中 n 是链表中的节点数。 空间复杂度:此方法的空间复杂度为 O(1)。它是常数的,因为程序中没有分配额外的空间。 结论
|
我们非常熟悉 Python 中可用的数据类型以及我们可以对它们执行的不同操作。我们知道,字符串是用引号 '' 表示的字符序列。它们是不可变的,这意味着它们一旦创建就无法更改...
阅读 4 分钟
在本教程中,我们将讨论 max() 函数以及如何在 Python 编程语言中使用它。我们还将考虑各种示例以更好地理解。那么,让我们开始吧。了解 Python max() 函数 该函数返回可迭代对象中最大的数据元素。我们...
阅读 4 分钟
TensorFlow 是一个用于深度学习和机器学习的开源软件库。它最初由 Google Brain 团队创建,目前由 Google TensorFlow 团队负责维护。它用于许多不同的用途,包括时间序列预测、语音和图像识别以及......
阅读 4 分钟
Python Numpy 包中提供了大量复杂的数学函数。借助这些函数,可以在 Python 中处理大型多维数组和矩阵,并对它们执行各种逻辑和统计操作。Python 的 numpy 库使得...
阅读 4 分钟
在本教程中,我们将学习如何使用Python程序旋转数组。我们将编写一个旋转函数(arry[], E, K),它将用于旋转大小为K = 8,旋转E = 4个元素的arry[]。我们将得到...
阅读 6 分钟
通常,物联网 (IoT) 系统的原型或实际系统必须快速有效地设计和开发。每当这种情况发生时,就会立即出现两项活动:一项是编程 IoT 设备,另一项是组织一个后端来与这些设备交互。在...
阅读9分钟
介绍 Python 提供了几个运算符来对变量执行各种操作。这些运算符可分为两种类型:就地运算符和标准运算符。这两种运算符执行相同的任务,但它们在行为和对基础数据的影响方面有所不同。在本文中,我们将探讨它们如何...
阅读 4 分钟
NumPy 是一个广受欢迎的数组操作库,有时也称为 Numeric Python。由于图像只是一组具有不同颜色代码的像素,因此可以使用 NumPy 将数组转换为图像。除了 NumPy,PIL(通常称为 Pillow)也将是...
5 分钟阅读
制作小规模项目,例如基于文本用户界面 (TUI) 的掷骰子应用程序,可以帮助我们提高 Python 编程能力。我们将学习收集和验证用户输入、从包和模块导入代码、使用写入函数、利用...
阅读20分钟
使用监督线性回归 (SLR) 训练和评估预测学生课堂学业成绩的机器学习模型。引言 机器学习是通过使用数据和经验自动学习算法的研究。它是计算智能的一个子集,其基础是...
阅读 13 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India