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

简单的链表相加

一,结构体的构造函数

二,链表相加

1,代码展示,看教程完成的

#include<iostream>using namespace std;struct Node
{int value;Node* next;Node(int x = 0,Node* p = NULL) : value(x) ,next(p) {};
};Node* create_nodelist(int*, int);
Node* add_twolist(Node*, Node*);
void printlist(Node*);int main()
{int arr1[] = { 3,2,6,3,7,9,1 };int arr2[] = { 4,2,5,2,6 };int len1 = sizeof(arr1) / sizeof(int);int len2 = sizeof(arr2) / sizeof(int);Node* head1, * head2,* add_head;head1 = create_nodelist(arr1, len1);printlist(head1);cout << endl;head2 = create_nodelist(arr2, len2);printlist(head2);cout << endl;cout << "the addded_list is below ." << endl;add_head = add_twolist(head1, head2);printlist(add_head);return 0;
}Node* create_nodelist(int* arr, int len)
{Node* head = new Node;Node* current = head;head->value = arr[0];for (int i = 1; i < len; i++){Node* p = new Node;p->value = arr[i];current->next = p;current = p;}current->next = NULL;return head;
}Node* add_twolist(Node* head1, Node* head2)
{Node* ans, * current, * cur1 = head1, * cur2 = head2;ans = current = NULL;int carry = 0;for (int sum, val;cur1 != NULL || cur2 != NULL;cur1 = (cur1 == NULL) ? NULL : cur1->next,cur2 = (cur2 == NULL) ? NULL : cur2->next){sum = (cur1 == NULL ? 0 : cur1->value)+ (cur2 == NULL ? 0 : cur2->value)+ carry;val = sum % 10;carry = sum / 10;if (ans == NULL)//create the new head node {ans = new Node(val);current = ans;}else{current->next = new Node(val);current = current->next;}}if (carry == 1)current->next = new Node(1);return ans;
}void printlist(Node* head)
{Node* current = head;while (current != NULL){cout << current->value << " ";current = current->next;}
}

2,补充

for循环里面条件的宽泛表达,条件更新;充分使用三目运算。


http://www.mrgr.cn/news/69805.html

相关文章:

  • 模型压缩概览
  • ts 中 ReturnType 作用
  • ZooKeeper集群指南-新增节点配置
  • 苍穹外卖 数据可视化
  • LeetCode 216-组合总数Ⅲ
  • netcat工具安装和使用
  • 华为机试HJ33 整数与IP地址间的转换
  • RabbitMQ集群搭建
  • spring cloud实战总结(优雅下线、灰度发布)
  • 推荐一款批量自动识别图片方向的软件:批量校正图像方向工具
  • PostgreSQL的奥秘:深入探究事务与锁的秘密世界
  • MySQL系列之如何在Linux只安装客户端
  • 《Python网络安全项目实战》项目4 编写网络扫描程序
  • 力扣力扣力:91.解码方法
  • 「C/C++」C++标准库 之 #include<iostream> 标准输入输出
  • CSS 色彩魔法:打造绚丽网页风格
  • c++左值、右值、完美转发、万能引用、参数展开
  • MyBatis6-逆向工程、分页插件
  • 问:聊聊Spring IOC机制
  • npm常用函数定义手册(持续更新)
  • 使用 nsenter 进入 Docker 容器的操作
  • 逆向攻防世界CTF系列21-answer_to_everything
  • 【Rust练习】20.进一步深入特征
  • Debezium系列之:Incremental snapshotting设计原理
  • 临床预测模型-静态诺模/列线图(Nomogram)+校准曲线(Calibration)分析学习
  • 动态规划-两个数组的dp问题——718.最长重复子数组