problem:https://leetcode.com/problems/copy-list-with-random-pointer/
tips:
size = 0的特殊情况考虑。
new_curp一开始是NULL,所以把它作为循环结束标志,永远也不会进入循环。
链表一开始的size可以遍历来求出,这样hash table的size就确定了。
hash冲突的解决:由于保存了两份hash table 所以可以用原链表的random和cur指针相等,来寻找冲突的地址。
将RandomListNode的地址作为hash参数,用long int强制转换。。。太小的类型会提示丢失精度。
从来没有考虑 new 分配失败的情况。(算法设计中默认不会失败,平时编程需要考虑)