牛客14954552...:HasSubtree函数里第三个判空条件可以不写,因为前两种情况自动把第三种情况包含了,而且应为false
0 点赞 评论 收藏
分享
2022-04-25 17:39
清华大学 Java 南大一只牛:回头来看,发现利用哈希表解法的官方解答真的有点麻烦,主要是没有必要遍历哈希表。这里有个简化版本的方法,同样适用哈希表,首先遍历链表,每遍历到一个结点就新建结点,并保存结点对到哈希表。然后,再次遍历链表,每次用原结点到哈希表找复制后的结点,然后map.get(cur).next = map.get(cur.next);map.get(cur).random = map.get(cur.random);直接一次建立好复杂链表。这里相比于原来的遍历哈希表,逻辑更清晰易懂,并且map的作用体现的淋漓尽致,就是保存结点对。
0 点赞 评论 收藏
分享
2022-04-22 13:12
清华大学 Java 留言而你却:使用java语言解题的时候,既然已经用到了HashMap,那么使用LinkedHashMap不是更好吗。。。当然官方写详细点,方便大家理解算法细节是好的。不过实际情况下,已经有轮子了,最好直接使用轮子比较好。而且源码LinkedHashMap考虑的情况更多更加全面,自己再写一个类似LinkedHashMap的考虑的反而不一定很全面。
0 点赞 评论 收藏
分享
2022-04-22 13:10
清华大学 Java 南大一只牛:牛客的官方题解,写的真的是简单易懂,真心佩服。没有任何的炫技,一切以帮助理解为主,思路非常清晰。感谢作者!!!
0 点赞 评论 收藏
分享
创作者周榜
更多
关注他的用户也关注了: