LeetCode 面试题 02.01. 移除重复节点
大家好,我是灵魂画师--茄子。技术水平一般,喜欢画画。
开始今天的正题。
编写代码,移除未排序链表中的重复节点。保留最开始出现的节点。
示例 1:
输入:[1, 2, 3, 3, 2, 1]
输出:[1, 2, 3]
示例 2:
输入:[1, 2, 3, 3, 2, 1]
输出:[1, 2, 3]
解法:
1.哈希表法
思路:
- 创建一个obj,循环遍历head
- 如果没有这个元素,则让obj中对应的属性值为1,如果有则记录当前节点
- 继续前进到达下一个没有的节点,改变指向。
var removeDuplicateNodes = function(head) {
let hashObj = {};
let p = head;
let pre = null;
while(p){
if(hashObj[p.val]){
pre = p.next
} else {
hashObj[p.val] = p.val;
pre = p;
}
p = p.next;
}
return head;
};
结合我的分析你是不是对这道题有了更清晰的认识了呢?
以上就是我的思路以及解法了,希望大家喜欢我画的图解,我会继续努力的ヾ(◍°∇°◍)ノ゙。(点个赞把我带走吧~~)
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。