zoukankan      html  css  js  c++  java
  • 复杂链表的复制

    public class Solution {
    public RandomListNode Clone(RandomListNode pHead){
    if(pHead == null)
    return null;
    RandomListNode pCur = pHead;
    //复制next 如原来是A->B->C 变成A->A'->B->B'->C->C'
    while(pCur!=null){
    RandomListNode node = new RandomListNode(pCur.label);
    node.next = pCur.next;
    pCur.next = node;
    pCur = node.next;
    }
    pCur = pHead;
    //复制random pCur是原来链表的结点 pCur.next是复制pCur的结点
    while(pCur != null){
    if(pCur.random != null)
    pCur.next.random = pCur.random.next;
    pCur = pCur.next.next;
    }
    RandomListNode head = pHead.next;
    RandomListNode cur = head;
    pCur = pHead;
    //拆分链表
    while(pCur != null){
    pCur.next = pCur.next.next;
    if(cur.next != null)
    cur.next = cur.next.next;
    cur = cur.next;
    pCur = pCur.next;
    }
    return head;
    }
    }

  • 相关阅读:
    Js变量类型
    前端面试题HTML
    AP聚类
    锚点
    html
    Active Learning主动学习
    z-index
    position
    学习笔记_卷积神经网络
    学习笔记_深度学习的数学基础
  • 原文地址:https://www.cnblogs.com/lycroseup/p/6827100.html
Copyright © 2011-2022 走看看