剑指offer (25)

题目 : 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)

思路 :
递归思想 :把大问题转化为若干子问题,此题转化为一个头结点和去除头结点剩余
部分,剩余部分操作和原问题一致

public class Solution {
	public RandomlistNode clone (RandomlistNode pHead) {
		if (pHead == null) {
			return null;
		}
		RandomlistNode newNode = new RandomlistNode(pHead.lable);
		newNode.random = pHead.random;
		newNode.next = clone(pHead.next);
		
		return newNode;
	}
}
class RandomlistNode {
	int lable;
	RandomlistNode next = null;
	RandomlistNode random = null;

	public RandomlistNode(int lable) {
		this.lable = lable;
	}
}
发布了50 篇原创文章 · 获赞 0 · 访问量 402

猜你喜欢

转载自blog.csdn.net/weixin_46108108/article/details/104201868