Java中如何把新项插入到给定位置的整数链表
前言
Java中如何把新项插入到给定位置的整数链表
问题
我编写了一个函数,打算把一个新内容插入到指定位置的整数链表中,我该怎么做?
public static SinglyLinkedListNode insert_at_position(SinglyLinkedListNode head, int val, int pos) {
SinglyLinkedListNode temp = head;
if (pos == 0)
{
SinglyLinkedListNode newNode = new SinglyLinkedListNode(val);
newNode = temp;
head = newNode;
}
else if (pos > 0)
{
SinglyLinkedListNode newNode = new SinglyLinkedListNode(val);
newNode = temp;
head = newNode;
for (int i = 0 ; i <= pos; i )
{
temp = head.next;
if (i == pos)
{
head.next = newNode;
newNode = temp;
}
}
}
return head;
}
答案
一些问题:
-
代码创建一个新节点,将其分配给
newNode
,然后立即将temp
分配给newNode
,从而丢失对新创建节点的引用 -
temp
用head
的值初始化,然后newNode
得到temp
的值,然后head
得到temp
的值。这意味着您已将head
设置为...head
,即无操作。 -
循环在每次迭代中执行
temp = head.next;
。这将始终将相同的引用放入temp
...每次它执行的时候。因此循环的迭代次数变得无关紧要。temp
将始终引用列表中的第二个节点。这样做会更有意义temp = temp.next
-
在上次迭代中设置
head.next = newNode;
...即使忽略您对temp
所做的操作。此赋值不使用在循环迭代期间所做的任何操作。它也可以在循环之外执行。 -
最后一条语句
newNode = temp
没有做任何有用的事情。newNode
从未在该语句之后使用过,因此它也可能不在那里。如果是newNode.next = temp
,那就更有意义了。这将有效地将newNode
链接到可能的下一个节点。 -
循环迭代次数太多。因为您已经使用
pos == 0
在列表的开始处插入了新节点,所以pos == 1
应该在head
节点之后插入新节点,因此不需要迭代。仅当pos > 2
需要迭代时。
以下是更正后的版本:
public static SinglyLinkedListNode insert_at_position(SinglyLinkedListNode head,
int val, int pos) {
SinglyLinkedListNode newNode = new SinglyLinkedListNode(val);
if (pos == 0) {
newNode.next = head;
head = newNode;
} else if (pos > 0) {
SinglyLinkedListNode temp = head;
for (int i = 1; i < pos; i ) {
temp = temp.next;
}
newNode.next = temp.next;
temp.next = newNode;
}
return head;
}
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanehkc
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13