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

    复杂链表的复制

    题目描述

    输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针random指向一个随机节点),请对此链表进行深拷贝,

    • 并返回拷贝后的头结点。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)

    题目链接: 复杂链表的复制

    代码

    /**
     * 标题:复杂链表的复制
     * 题目描述
     * 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针random指向一个随机节点),请对此链表进行深拷贝,
     * 并返回拷贝后的头结点。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)
     * 题目链接:
     * https://www.nowcoder.com/practice/f836b2c43afc4b35ad6adc41ec941dba?tpId=13&&tqId=11178&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking
     */
    public class Jz25 {
    
        /**
         * 方法:
         * 第一步,在每个节点的后面插入复制的节点。
         * 第二步,对复制节点的 random 链接进行赋值。
         * 第三步,拆分。
         *
         * @param pHead
         * @return
         */
        public RandomListNode clone(RandomListNode pHead) {
            if (pHead == null) {
                return null;
            }
            // 插入新节点
            RandomListNode cur = pHead;
            while (cur != null) {
                RandomListNode clone = new RandomListNode(cur.label);
                clone.next = cur.next;
                cur.next = clone;
                cur = clone.next;
            }
            // 建立 random 链接
            cur = pHead;
            while (cur != null) {
                RandomListNode clone = cur.next;
                if (cur.random != null) {
                    clone.random = cur.random.next;
                }
                cur = clone.next;
            }
            // 拆分
            cur = pHead;
            RandomListNode pCloneHead = pHead.next;
            while (cur.next != null) {
                RandomListNode next = cur.next;
                cur.next = next.next;
                cur = next;
            }
            return pCloneHead;
        }
    }
    
    
    
    

    【每日寄语】 脚步不停,初心不变。

  • 相关阅读:
    作业题---设计一个类,求和的方法,求乘积的方法
    PHP-----预定义数组和数组的函数
    PHP-----指针遍历
    PHP------定义数组,取值数组和遍历数组
    PHP---------生成随机数,日期时间函数
    PHP的字符串处理
    PHP的正则表达式常用应用
    PHP的正则表达式
    PHP---函数
    PHP分页查询中的条件查询
  • 原文地址:https://www.cnblogs.com/kaesar/p/15686589.html
Copyright © 2011-2022 走看看