p ≠ nullptr 表示最后有效使用是最后一个元素,最终 p 停在nullptr位置。
p→next ≠ nullptr 表示最后有效使用是倒数第二个元素,最终p停止最后一个元素位置。
比如这里有一个数组 a[1...n]。
p != null 就好像 for(int i = 1; i <= n; i++) ,可以取到最后一个元素,并且循环结束后 i = n + 1, 就等同于 p 停在 null 。
p -> next != null 就好像 for(int i = 1; i < n; i++) ,取不到最后一个元素,并且循环结束后 i = n,就等同于 p 停在最后一个元素位置上。