剑指offer--复杂链表的复制
来源:互联网 发布:淘宝发错货怎么理赔 编辑:程序博客网 时间:2024/05/16 18:39
题目描述
输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点)。
分类:链表,hash
解法1:第一次遍历链表,根据链表新建节点,同时保存链表节点到新建节点的映射,到一个hashmap
第二次链表,根据hashmap创建新建节点之间的特殊指针关系
分类:链表,hash
解法1:第一次遍历链表,根据链表新建节点,同时保存链表节点到新建节点的映射,到一个hashmap
第二次链表,根据hashmap创建新建节点之间的特殊指针关系
/*public class RandomListNode { int label; RandomListNode next = null; RandomListNode random = null; RandomListNode(int label) { this.label = label; }}*/import java.util.HashMap;import java.util.Iterator;import java.util.Map.Entry;import java.util.Set;public class Solution {public RandomListNode Clone(RandomListNode pHead){HashMap<RandomListNode,RandomListNode> map = new HashMap<RandomListNode,RandomListNode>();RandomListNode p = pHead;RandomListNode q = new RandomListNode(-1);while(p!=null){RandomListNode t = new RandomListNode(p.label);map.put(p, t);p = p.next;q.next = t;q = t;}Set<Entry<RandomListNode,RandomListNode>> set = map.entrySet();Iterator<Entry<RandomListNode,RandomListNode>> it = set.iterator();while(it.hasNext()){Entry<RandomListNode, RandomListNode> next = it.next();next.getValue().random = map.get(next.getKey().random);}return map.get(pHead);}}
0 0
- 【剑指offer】复杂链表的复制
- 剑指offer--复杂链表的复制
- 《剑指offer》复杂链表的复制
- 剑指offer:复杂链表的复制
- 剑指offer - 复杂链表的复制
- 剑指Offer--复杂链表的复制
- 剑指offer:复杂链表的复制
- 【剑指offer】复杂链表的复制
- 剑指offer-复杂链表的复制
- 剑指offer:复杂链表的复制
- 剑指offer:复杂链表的复制
- [剑指offer]复杂链表的复制
- 【剑指offer】复杂链表的复制
- 剑指offer|复杂链表的复制
- 《剑指offer》复杂链表的复制
- 剑指Offer:复杂链表的复制
- 剑指offer 复杂链表的复制
- 剑指offer-复杂链表的复制
- B. Fox And Two Dots
- JavaScript编程规范-有利于效率和可读性
- 自学历程
- Android编译服务器的管理之二:管理用户
- 第一章第十二题
- 剑指offer--复杂链表的复制
- R1 Lecture 06 Class Notes
- C语言的通用链表
- 选择HttpHandler还是HttpModule?
- eclipse快捷键
- Java-学习计划和需要阅读的书籍
- Lex匹配unicode字符
- 第13题
- 第一章第九题