zoukankan      html  css  js  c++  java
  • 牛客(25)复杂链表的复制

    //    题目描述
    //    输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),
    //    返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)
        public static class RandomListNode {
            int label;
            RandomListNode next = null;
            RandomListNode random = null;
    
            RandomListNode(int label) {
                this.label = label;
            }
        }
    
        //  不会看的别人的思路
        public static RandomListNode Clone(RandomListNode pHead) {
            //保存头节点
            RandomListNode newLink = pHead;
            //复制节点并插入节点
            while (newLink != null) {
                //复制节点
                RandomListNode insert = new RandomListNode(newLink.label);
                //插入被复制的节点后面
                insert.next = newLink.next;
                newLink.next = insert;
                //指针移动到下一个要复制的节点
                newLink = insert.next;
            }
            //修改random
            newLink =pHead;
            while (newLink != null) {
                if (newLink.random != null) {
                    newLink.next.random = newLink.random.next;
                }
                newLink = newLink.next.next;
            }
    
    
    //      拆分
            RandomListNode clone =  new RandomListNode(0);
            RandomListNode result=clone;
            newLink =pHead;
            while (newLink != null) {
                clone.next=newLink.next;
                clone=clone.next;
                newLink.next = newLink.next.next;
                newLink=newLink.next;
    //            newLink=newLink.next.next;直接返回空
            }
    
            return result.next;
         }
  • 相关阅读:
    html调用php
    MySQL安装下载
    MySQL默认安装下载
    MySQL安装下载
    搭建php环境
    面试官:聊聊对Vue.js框架的理解
    TCP、UDP、HTTP、SOCKET之间的区别与联系
    HTTP/1、HTTP/2、HTTP/3
    git教程
    从jQuery到Serverless,前端十四年挖了多少坑?
  • 原文地址:https://www.cnblogs.com/kaibing/p/9023935.html
Copyright © 2011-2022 走看看