剑指offer刷题 - day04
JZ35 复杂链表的复制 刚开始我的思路是从头节点开始遍历,遍历过程中新建一个新的节点,如果原节点有 Random 指针,那么就新节点的 Random 指向原节点的 Random。然后原节点的 Next 指向新节点。 然后在遍历一遍新链表,如果节点存在 Random 指针,则使将 Random 指针重新指向原 Random 的 Next 就是新节点,p.Random=p.Random.Next
JZ35 复杂链表的复制 刚开始我的思路是从头节点开始遍历,遍历过程中新建一个新的节点,如果原节点有 Random 指针,那么就新节点的 Random 指向原节点的 Random。然后原节点的 Next 指向新节点。 然后在遍历一遍新链表,如果节点存在 Random 指针,则使将 Random 指针重新指向原 Random 的 Next 就是新节点,p.Random=p.Random.Next
JZ23 链表中环的入口结点 我的思路 遍历节点,根据题意节点值范围在 1<=n<=10000 ,将遍历过的节点节点值取反,然后在循环过程中判断节点值是否为负,为负重新取正然后返回该节点。 package main /* type ListNode struct { Val int Next *ListNode } */ func EntryNodeOfLoop
JZ25 合并两个排序的链表 迭代实现 package main import . "nc_tools" /* * type ListNode struct{ * Val int * Next *ListNode * } */ /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param pHead1 ListN