把结点定义放在循环外面,内存耗用反而更高,是什么原因?(具体请看下文)

LeetCode,链表题,第 206 题,翻转链表

代码如下:

class Solution {
    public ListNode reverseList(ListNode head) {
        ListNode prev = null;
        ListNode curr = head;
        while (curr != null) {
            ListNode next = curr.next; //放在while 外面,耗费内存反而更高,为啥?
            curr.next = prev;
            prev = curr;
            curr = next;
        }
        return prev;
    }
}

提交结果如下:

img

while 循环中有个结点定义,把这句拿到 循环外

class Solution {
    public ListNode reverseList(ListNode head) {
        ListNode prev = null;
        ListNode curr = head;
        ListNode next;
        while (curr != null) {
            next = curr.next; //放在while 外面,耗费内存反而更高,为啥?
            curr.next = prev;
            prev = curr;
            curr = next;
        }
        return prev;
    }
}

提交结果如下:

img

更少的定义,耗用内存反而更高?希望有知道的老哥帮我解疑

因为定义节点内,需要重复创建对象,耗用资源
望采纳!