我正在解决一些编程问题,以准备面试,但我对有效的解决方案感到困惑。
问题本身并不重要,重要的是在此解决方案中,一个变量设置为另一个变量,例如:
ListNode current = head;
然后,随着解决方案的继续,将修改此“当前”变量。在任何时候都不会将电流重新分配给head,但是在对电流进行了所有更改后,它仍然会在最后返回head。
while (current != null && current.next != null) {
if (current.next.val == current.val) {
current.next = current.next.next;
} else {
current = current.next;
}
}
return head;
这是否意味着当电流设置为head时,实际上是将其设置为指向内存地址的指针,而不是复制相同的属性吗?
我不了解这里发生的事情,但我感到非常尴尬,但除非我确信自己知道发生了什么,否则我继续前进就感到不自在。
谢谢
它不是指针,它在C#中的引用。
是的,它们将指向相同的内存地址。我在下面给你一个简单的例子。
using System;
public class Program
{
public class ABC {
public int x;
}
public static void Main()
{
ABC a = new ABC();
a.x = 1;
ABC b = a;
b.x = 2;
ABC c = b;
c.x = 3;
Console.WriteLine(a.x);
Console.WriteLine(b.x);
Console.WriteLine(b.x);
}
}
它将打印。
3
3
3
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句