Problem link: http://oj.leetcode.com/problems/copy-list-with-random-pointer/ Deepcopy a linked list with random pointer, realy simple problem, solved in three steps using a hash map: Create a new head, duplicating the head (return NULL for case head=…
Copy List with Random Pointer A linked list is given such that each node contains an additional random pointer which could point to any node in the list or null. Return a deep copy of the list. 题目意思: 深拷贝一个给定的带random指针的链表,这个random指针可能会指向其他任意一个节点或者是为nu…
A linked list is given such that each node contains an additional random pointer which could point to any node in the list or null. Return a deep copy of the list. 这题用map做其实比较简单,但是一开始没想明白越想越乱,最后看了下别人的实现,思路还是很清晰的,代码如下所示: /** * Definition for singly-li…
Problem link: http://oj.leetcode.com/problems/clone-graph/ This problem is very similar to "Copy List with Random Pointer", we need a hash map to map a node and its clone. The algorithm is 2-pass procedure as follows. CLONE-GRAPH(GraphNode node)…
A linked list is given such that each node contains an additional random pointer which could point to any node in the list or null. Return a deep copy of the list. 思路: 做过,先复制一遍指针,再复制random位置,再拆分两个链表. #include <iostream> #include <vector> #incl…
A linked list is given such that each node contains an additional random pointer which could point to any node in the list or null. Return a deep copy of the list. 解题思路: 本题要求新建一个链表,使其完全等于输入链表,相当于对输入链表深复制. 题目的难点在于,原链表中有random指针,指向原链表对应的结点.当新链表建立时,需要对新…
A linked list is given such that each node contains an additional random pointer which could point to any node in the list or null. Return a deep copy of the list. 思路:第一遍正常复制链表,同一时候用哈希表保存链表中原始节点和新节点的相应关系,第二遍遍历链表的时候,再复制随机域. 这是一种典型的空间换时间的做法,n个节点,须要大小为O…
Problem Link: http://oj.leetcode.com/problems/interleaving-string/ Given s1, s2, s3, find whether s3 is formed by the interleaving of s1 and s2. For example, Given: s1 = "aabcc", s2 = "dbbca", When s3 = "aadbbcbcac", return t…
Problem link: http://oj.leetcode.com/problems/reverse-words-in-a-string/ Given an input string, reverse the string word by word. For example, Given s = "the sky is blue", return "blue is sky the". LeetCode OJ supports Python now! The s…
Problem Link: http://oj.leetcode.com/problems/word-ladder-ii/ Basically, this problem is same to Word Ladder I, which uses a double-direction BFS. However, the difference is that we need to keep track of all paths during the double-direction BFS in o…