C++中ListNode线性链表的定义及其使用方法(Leedcode两数相加题目)

2023-11-19

1. ListNode线性链表定义

struct ListNode{
	int val;
	ListNode *next;
	ListNode() : val(0),next(NULL){}
	ListNode(int x) : val(x), next(NULL){}
	ListNode(int x, ListNode *next) : val(x), next(next){}
}; 

2.ListNode线性链表使用方法(在main中测试)

c++中使用new定义的变量和不使用new定义的变量

假设有一个类CTest,现定义两个CTest的对象
CTest t1;
CTest *t2 = new CTest();
1.本质不同
t1为类对象。
t2为类对象的指针。

2.作用域不同
t1作用域限制在定义类对象的方法中,当方法结束时,类对象也会被系统释放,不需要手工释放,安全不会造内存泄露。
t2作用域为全局,当程序结束时,需要使用delete进行手工释放,系统不会自动释放,如果忘记释放,容易造成内存泄露

3.内存中存放地址不同
t1存放在堆中。
t2存放在栈中。

//边定义边赋值,new一个新的节点 
ListNode *l3 = new ListNode(12);
cout << l3->val << endl;
delete(l3);


//在既定范围内定义一个节点 
ListNode vHead(3);
ListNode p = vHead;         //将当前地址赋值给p,使得p指向当前节点 
cout << vHead.val << endl;
cout << p.val <<endl; 


//定义一个节点时,默认赋值,使用ListNode():val(0),next(NULL){}
ListNode *vHead2 = new ListNode();
cout << vHead2->val << endl; 
//定义一个节点时,默认赋值,使用ListNode():val(0),next(NULL){}
ListNode vHead2;
cout << vHead2.val << endl; 

创建一个长链表:

ListNode *L = new ListNode();
ListNode *l1 = new ListNode(2);
ListNode *l2 = new ListNode(3);
ListNode *l3 = new ListNode(4);
L->next = l1;
l1->next = l2;
l2->next = l3;
ListNode *p = L->next;
while(p != NULL){
	cout << p->val << endl;
	p = p->next;
}

3.leetcode题目

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++中ListNode线性链表的定义及其使用方法(Leedcode两数相加题目) 的相关文章

  • 如何从 C# 中的 dataTable.Select( ) 查询中删除单引号?

    所以我有一个经销商名称列表 我正在我的数据表中搜索它们 问题是 一些傻瓜必须被命名为 Young s 这会导致错误 drs dtDealers Select DealerName dealerName 所以我尝试替换字符串 尽管它对我不起作
  • 如何在多线程C++ 17程序中交换两个指针?

    我有两个指针 pA 和 pB 它们指向两个大的哈希映射对象 当pB指向的哈希图完全更新后 我想交换pB和pA 在C 17中 如何快速且线程安全地交换它们 原子 我是 c 17 的新手 2个指针的原子无等待交换可以通过以下方式实现 inclu
  • 如何捕获未发送到 stdout 的命令行文本?

    我在项目中使用 LAME 命令行 mp3 编码器 我希望能够看到某人正在使用什么版本 如果我只执行 LAME exe 而不带参数 我会得到 例如 C LAME gt LAME exe LAME 32 bits version 3 98 2
  • 从同一个类中的另一个构造函数调用构造函数

    我有一个带有两个构造函数的类 C 这是代码片段 public class FooBar public FooBar string s constructor 1 some functionality public FooBar int i
  • 使用可变参数包类型扩展的 C++ 函数调用者包装器

    我绑定了一些 API 并且绑定了一些函数签名 如下所示 static bool WrapperFunction JSContext cx unsigned argc JS Value vp 我尝试将对象和函数包装在 SpiderMonkey
  • 将 Long 转换为 DateTime 从 C# 日期到 Java 日期

    我一直尝试用Java读取二进制文件 而二进制文件是用C 编写的 其中一些数据包含日期时间数据 当 DateTime 数据写入文件 以二进制形式 时 它使用DateTime ToBinary on C 为了读取 DateTime 数据 它将首
  • 为什么可以通过ref参数修改readonly字段?

    考虑 class Foo private readonly string value public Foo Bar ref value private void Bar ref string value value hello world
  • 类型约束

    我有以下类层次结构 class Header IEnumerable
  • 启动时的 Excel 加载项

    我正在使用 Visual C 创建 Microsoft Excel 的加载项 当我第一次创建解决方案时 它包含一个名为 ThisAddIn Startup 的函数 我在这个函数中添加了以下代码 private void ThisAddIn
  • 识别 Visual Studio 中的重载运算符 (c++)

    有没有办法使用 Visual Studio 快速直观地识别 C 中的重载运算符 在我看来 C 中的一大问题是不知道您正在使用的运算符是否已重载 Visual Studio 或某些第三方工具中是否有某些功能可以自动突出显示重载运算符或对重载运
  • 为什么这个二维指针表示法有效,而另一个则无效[重复]

    这个问题在这里已经有答案了 这里我编写了一段代码来打印 3x3 矩阵的对角线值之和 这里我必须将矩阵传递给函数 矩阵被传递给指针数组 代码可以工作 但问题是我必须编写参数的方式如下 int mat 3 以下导致程序崩溃 int mat 3
  • 打印大型 WPF 用户控件

    我有一个巨大的数据 我想使用 WPF 打印 我发现WPF提供了一个PrintDialog PrintVisual用于打印派生的任何 WPF 控件的方法Visual class PrintVisual只会打印一页 因此我需要缩放控件以适合页面
  • C++ new * char 不为空

    我有一个问题 我在 ASIO 中开发服务器 数据包采用尖头字符 当我创建新字符时 例如char buffer new char 128 我必须手动将其清理为空 By for int i 0 i lt 128 i buffer i 0x00
  • OpenGL:仅获取模板缓冲区而没有深度缓冲区?

    我想获取一个模板缓冲区 但如果可能的话 不要承受附加深度缓冲区的开销 因为我不会使用它 我发现的大多数资源表明 虽然模板缓冲区是可选的 例如 排除它以利于获得更高的深度缓冲区精度 但我还没有看到任何请求并成功获取仅 8 位模板缓冲区的代码
  • GCC 的“-Wl,option”和“-Xlinker option”语法之间有区别吗?

    我一直在查看一些配置文件 并且看到它们都被使用 尽管在不同的体系结构上 如果您在 Linux 机器上使用 GCC 将选项传递给链接器的两种语法之间有区别吗 据我所知 阅读 GCC 手册时 他们的解释几乎相同 From man gcc Xli
  • 我可以在“字节数”设置为零的情况下调用 memcpy() 和 memmove() 吗?

    当我实际上没有什么可以移动 复制的时候 我是否需要处理这些情况memmove memcpy 作为边缘情况 int numberOfBytes if numberOfBytes 0 memmove dest source numberOfBy
  • 使用 pandas 单元格中列表的长度选择行[重复]

    这个问题在这里已经有答案了 我有一张表 df a b c 1 x y x 2 x z c d 3 x t e f g 只是想知道如何使用 c 列的长度选择行 such as df loc len df c gt 1 我知道这是不对的 正确的
  • 为boost python编译的.so找不到模块

    我正在尝试将 C 代码包装到 python 中 只需一个类即可导出两个函数 我编译为map so 当我尝试时import map得到像噪音一样的错误 Traceback most recent call last File
  • 如何减少具有多个单元的 PdfPTable 的内存消耗

    我正在使用 ITextSharp 创建一个 PDF 它由单个 PdfTable 组成 不幸的是 对于特定的数据集 由于创建了大量 PdfPCell 我遇到了内存不足异常 我已经分析了内存使用情况 我有近百万个单元格的 1 2 在这种情况下有
  • 不区分大小写的字符串比较 C++ [重复]

    这个问题在这里已经有答案了 我知道有一些方法可以进行忽略大小写的比较 其中涉及遍历字符串或一个good one https stackoverflow com questions 11635 case insensitive string

随机推荐

  • [CUDA] 快速入门CUDA(1)-基本了解和HelloWorld

    CUDA基础 文章目录 CUDA基础 1 CUDA简介 2 GPU和CPU架构的不同之处 3 查看GPU硬件信息 4 需要建立的基本概念 5 总结 1 CUDA简介 CUDA的全程是Computer Unified Device Archi
  • 树莓派4B(buster)的源更换为北外(清华)国内源

    树莓派4B buster 的源更换为北外 清华 国内源 1 登陆到树莓派 ssh pi your raspi IP 2 备份源文件 sudo cp etc apt sources list etc apt sources list bak
  • GoogLeNet论文详解

    GoogLeNet 1 Introduction 得益于深度学习的优势和更强大的卷积神经网络的出现 图像分类和目标检测的准确率发生了令人意想不到的进步 在2014年的ILSVRC比赛中 GoogLeNet取得了第一名的成绩 所用模型参数不足
  • 详解如何修改Linux文件权限

    参考 详解如何修改Linux文件权限 Linux文件权限详解 在Linux系统中 可以使用chmod命令来修改文件的权限 该命令用于更改文件或目录的读取 r 写入 w 和执行 x 权限 以下是一些详细的说明和示例 使用数字表示权限 r 读取
  • Golang教程:(十六)结构体

    原文 https golangbot com structs 欢迎来到Golang系列教程的第十六篇 什么是结构体 结构体 struct 是用户自定义的类型 它代表若干字段的集合 有些时候将多个数据看做一个整体要比单独使用这些数据更有意义
  • element el-table render-header自定义复选框

    项目中需要对列表数据进行批量处理 表头增加复选框 并关联列表数据 el table提供解决方法 实现多选非常简单 手动添加一个el table column 设type属性为selection即可 尝试后在我的项目中不适用 于是找到另一种r
  • Redis缓存与数据库双写一致性解决方案

    目录 1 冤孽的诞生 1 1 需求起因 1 2 策略之争 2 标准解决方案 2 1 延时双删策略 2 2 异步更新缓存 基于订阅binlog的同步机制 3 基于binlog订阅实现步骤 3 1 准备材料 3 2 代码实现 1 冤孽的诞生 1
  • python两个二维数组加法_python中利用numpy.array()实现俩个数值列表的对应相加方法...

    python中利用numpy array 实现俩个数值列表的对应相加方法 小编想把用python将列表 1 1 1 1 1 1 1 1 1 1 和 列表 2 2 2 2 2 2 2 2 2 2 对应相加成 3 3 3 3 3 3 3 3 3
  • [嵌入式linux]PCIe 热拔插(rescan)

    linux下可通过 sys bus pci devices 0000 bus number device number function number 目录下的节点进行热拔插操作 板子上电前PCIe插槽有一块NVME的固态硬盘 0 1985
  • SDIO接口协议(MMC SD WIFI GPS 以太网)

    一文搞懂SDIO 曼巴精神传承人的博客 CSDN博客 sdio SDIO协议 觅食小鱼的博客 CSDN博客 sdio协议 传统的SD存储卡只有一排引脚 包括一个3 3V电源VDD 用于默认速度
  • 使用ReactiveCocoa实现iOS平台响应式编程

    使用ReactiveCocoa实现iOS平台响应式编程 TIGER IOS 10 使用ReactiveCocoa实现iOS平台响应式编程 ReactiveCocoa和响应式编程 在说ReactiveCocoa之前 先要介绍一下FRP Fun
  • linux arm mmu基础

    ARM MMU页表框架 先上一张arm mmu的页表结构的通用框图 以下的论述都由该图来逐渐展开 以上是arm的页表框图的典型结构 即是二级页表结构 其中第一级页表 L1 是由虚拟地址的高12bit bits 31 20 组成 所以第一级页
  • 常用的IDEA插件

    IDEA是程序员用的最多的开发工具 很多程序员想把它打造成一站式开发工具 于是安装了各种各样的插件 通过插件在IDEA中完成各种操作 无需安装其他软件 确实很方便 今天给大家分享下我平时常用的IDEA插件 个个是精品 Key Promote
  • 今天我花一个通宵的时间安装Windows11系统居然失败,忍不住哭了!

    个人主页 极客小俊 作者简介 web开发者 设计师 技术分享博主 希望大家多多支持一下 我们一起进步 如果文章对你有帮助的话 欢迎评论 点赞 收藏 加关注 我们就不要废话了 直接上主题吧 Windows11 系统安装 提示此电脑无法运行完美
  • ospfv2详解

    文章目录 OSPFV2 技术背景 OSPF基本信息 OSPF 如何完成收敛 SPF计算 DR与BDR DR与BDR的选举 泛洪机制 影响OSPF邻接关系连理原因 1 状态 2 报文 参数 3 物理故障 lsa优先cost及防止环路 ospf
  • 通过doi可以检索到文献_经验丨我如何获得英文文献

    前阵子有师妹问我如何找英文文献 那这周就来分享分享我的经验 希望能有所帮助 那我们开始吧 本期推送目标 查找并下载目标英文文献 其实这里包含两个部分 第一个是找到想要的英文文献 第二个才是下载 如果已知目标文献信息 仅仅想要下载可以直接在往
  • C++——浅拷贝、深拷贝、写时拷贝详解

    C 浅拷贝 深拷贝 写时拷贝详解 浅拷贝与深拷贝 解决浅拷贝的问题 引用计数 写时拷贝 浅拷贝与深拷贝 用String类模拟用 将 0 拷贝进去 调用系统默认的拷贝构造函数 结果就是内容相同 地址相同 说明这个方法是浅拷贝方法 浅拷贝方法带
  • Java代码判断当前操作系统是Windows或Linux或MacOS

    package com magic system public class SystemUtils 判断操作系统是否是 Windows return true 操作系统是 Windows false 其它操作系统 public static
  • 在Visual studio 2019中创建Qt+OpenCv项目

    一般创建Qt项目 都会第一时间想到Qt creator 这个IDE确实好用 可自由选择编译器 mingw或Visual studio 但要同时结合OpenCv框架 整个配置过程太繁琐了 好像需要用到Cmake工具 综合考虑了一下 在Visu
  • C++中ListNode线性链表的定义及其使用方法(Leedcode两数相加题目)

    1 ListNode线性链表定义 struct ListNode int val ListNode next ListNode val 0 next NULL ListNode int x val x next NULL ListNode