LeetCode Java刷题笔记—394. 字符串解码

Posted 刘Java

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode Java刷题笔记—394. 字符串解码相关的知识,希望对你有一定的参考价值。

133. 克隆图

给你无向 连通 图中一个节点的引用,请你返回该图的 深拷贝(克隆)。

中等难度。使用DFS深度优先遍历即可解决。

public Node cloneGraph( Node node )

   if( node == null )
      return node;
   
   //hashmap存储新旧节点的对应关系,以及用来区分已克隆和未克隆的节点
   HashMap<Node, Node> map = new HashMap<>();
   //保存需要进行克隆的节点
   LinkedList<Node> queue = new LinkedList<>();
   queue.offer( node );
   map.put( node, new Node( node.val ) );
   /*DFS拷贝*/
   while( !queue.isEmpty() )
      //取出队列头部节点
      Node cur = queue.poll();
      //遍历并克隆节点的neighbors
      for( Node neighbor : cur.neighbors )
         //如果map不包含对应的节点则加入queue,并且克隆并存入map中
         if( !map.containsKey( neighbor ) )
            queue.offer( neighbor );
            map.put( neighbor, new Node( neighbor.val ) );
         
         //设置克隆节点的neighbors
         map.get( cur ).neighbors.add( map.get( neighbor ) );
      
   
   return map.get( node );

以上是关于LeetCode Java刷题笔记—394. 字符串解码的主要内容,如果未能解决你的问题,请参考以下文章

[JavaScript 刷题] 栈 - 字符串解码, leetcode 394

leetcode 394.字符串解码 Java

leetcode 394. 字符串解码 java

LeetCode 394. 字符串解码

LeetCode 394. 字符串解码

刷题394. Decode String