博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Copy List with Random Pointer
阅读量:4074 次
发布时间:2019-05-25

本文共 1245 字,大约阅读时间需要 4 分钟。

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.

Java代码:

/** * Definition for singly-linked list with a random pointer. * class RandomListNode { *     int label; *     RandomListNode next, random; *     RandomListNode(int x) { this.label = x; } * }; */public class Solution {    public RandomListNode copyRandomList(RandomListNode head) {        if (null == head)			return head;		RandomListNode tmp = head;		while (null != tmp) {			RandomListNode next = tmp.next;			RandomListNode node_add = new RandomListNode(tmp.label);			node_add.next = tmp.next;			node_add.random = tmp.random;			tmp.next = node_add;			tmp = tmp.next.next;		}		tmp = head.next;		while (null != tmp) {			if(null != tmp.random)			tmp.random = tmp.random.next;			if(null != tmp.next)			tmp = tmp.next.next;			else			tmp =tmp.next;		}		tmp = head;		RandomListNode new_head = head.next;		RandomListNode tmp_2 = new_head;		while (null != tmp.next && null !=tmp_2.next) {			tmp.next = tmp.next.next;			tmp_2.next = tmp_2.next.next;			tmp = tmp.next;			tmp_2 = tmp_2.next;		}		tmp.next = null;		tmp_2.next= null;		return new_head;    }}

转载地址:http://jpuni.baihongyu.com/

你可能感兴趣的文章
进程同步
查看>>
Python中列表元素删除
查看>>
二分查找与递归式二分查找
查看>>
在Navicat for MySQL中修改表的编码格式
查看>>
【RPC】一步一步实现基于netty+zookeeper的RPC框架(四)
查看>>
补充另一版ArrayList的初始化过程
查看>>
java接口不能实例化原因浅谈
查看>>
Https加密及攻防
查看>>
Java生成随机不重复推广码邀请码
查看>>
Java8 Lambda表达式介绍
查看>>
Java8 stream流介绍
查看>>
Java多线程之synchronized及死锁编写
查看>>
Java NIO源码剖析及使用实例(一):Buffer
查看>>
[swift实战入门]手把手教你编写2048(一)
查看>>
[swift实战入门]手把手教你编写2048(二)
查看>>
Java 爬虫入门(网易云音乐和知乎实例)
查看>>
[swift实战入门]手把手教你编写2048(三)
查看>>
堆排序原理(图)及java版代码
查看>>
【JAVA数据结构】栈(数组实现)
查看>>
【JAVA数据结构】双向链表
查看>>