当前位置: 首页 > news >正文

力扣HOT100 - 138. 随机链表的复制

 

解题思路:

class Solution {public Node copyRandomList(Node head) {if(head==null) return null;Node p = head;//第一步,在每个原节点后面创建一个新节点//1->1'->2->2'->3->3'while(p!=null) {Node newNode = new Node(p.val);newNode.next = p.next;p.next = newNode;p = newNode.next;}p = head;//第二步,设置新节点的随机节点while(p!=null) {if(p.random!=null) {p.next.random = p.random.next;}p = p.next.next;}p = head;Node anotherNode = new Node(-1);//定义一个另外的新节点,给它赋值为-1Node cur = anotherNode;//第三步,将两个链表分离while(p!=null) {cur.next = p.next;cur = cur.next;p.next = cur.next;p = p.next;}return anotherNode.next;}
}	

注意:

Node p=head;与Node p=new Node(head.val);存在区别

前者的p为一个指向head对象的引用,换句话说,p和head 指向同一个对象,它们共享相同的引用,后者则创建一个全新的Node节点,p与head的val值相同。

http://www.lryc.cn/news/352260.html

相关文章:

  • 深入分析 Android Activity (五)
  • Kubernetes 应用滚动更新
  • 五分钟”手撕“图书管理系统
  • 8个实用网站和软件,收藏起来一定不后悔~
  • 电商内卷时代,视频号小店凭借一己之力“脱颖而出”
  • 【论文笔记】| 定制化生成PuLID
  • P1638 逛画展
  • Linux(centos)常用命令
  • 从入门到精通:掌握Scrapy框架的关键技巧
  • Vue3按顺序调用新增和查询接口
  • sizeof的了解
  • PostgreSQL 教程
  • 《基于Jmeter的性能测试框架搭建》改进一
  • 计算机二进制表示和存储各种数据
  • 玩机社区 - 2024年最美社区源码开源
  • Linux系统——面试题分享
  • 谈恋爱没经验?那就来刷谈恋爱经验宝宝吧
  • element-ui输入框和多行文字输入框字体不一样解决
  • (Java企业 / 公司项目)配置Linux网络-导入虚拟机
  • java的unsafe
  • 起底震网病毒的来龙去脉
  • [杂项]优化AMD显卡对DX9游戏(天谕)的支持
  • 服务器没有图形界面没有显示器怎么办
  • 标准化软件实施方案(直接套用即可)
  • 云和恩墨海外首秀在吉隆坡召开的2024中国智能科技与文化展览会
  • 什么是react
  • EPIC免费领取《骑士精神2》 IGN9分神作骑士精神2限时免费领
  • 【Linux】icmp_seq=1 Destination Host Unreachable
  • java性能优化
  • Apache JMeter操作