草庐IT

ListNode

全部标签

单链表的创建

单链表的创建  1.单链表的定义typedefstructlistNode//定义链表结构体{intdata;structlistNode*next;intlength;}listNode,*LinkList;voidinit(LinkList&l)//初始化链表{l=(LinkList)malloc(sizeof(listNode*));l->next=nullptr;}  2.头插法构建单链表voidcreate_LinkList_head(LinkList&l,constintx)//头插法创建链表{listNode*new_node;new_node=(listNode*)malloc

LeetCode-21.合并两个有序链表

21.合并两个有序链表(MergeTwoSortedLists)将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例1:输入:l1=[1,2,4],l2=[1,3,4]输出:[1,1,2,3,4,4]示例2:输入:l1=[],l2=[]输出:[]示例3:输入:l1=[],l2=[0]输出:[0]提示:两个链表的节点数目范围是[0,50]-100l1和l2均按非递减顺序排列方法1:递归思路与算法我们可以如下递归地定义两个链表里的merge操作(忽略边界情况,比如空链表等):也就是说,两个链表头部值较小的一个节点与剩下元素的merge操作结果合并。我们直

LeetCode.面试题02.05-链表求和-题解分析

题目来源面试题02.05.链表求和题目详情给定两个用链表表示的整数,每个节点包含一个数位。这些数位是反向存放的,也就是个位排在链表首部。编写函数对这两个整数求和,并用链表形式返回结果。示例:输入:(7->1->6)+(5->9->2),即617+295输出:2->1->9,即912进阶:思考一下,假设这些数位是正向存放的,又该如何解决呢?示例:输入:(6->1->7)+(2->9->5),即617+295输出:9->1->2,即912题解分析题目的要求是对链表的节点进行求和。题目的难点在于两个链表的长度可能不同,而且每个节点只能存放一个数位的元素。这里最直接的解法就是模拟法,或者叫做遍历法,同

LeetCode-21.合并两个有序链表

21.合并两个有序链表(MergeTwoSortedLists)将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例1:输入:l1=[1,2,4],l2=[1,3,4]输出:[1,1,2,3,4,4]示例2:输入:l1=[],l2=[]输出:[]示例3:输入:l1=[],l2=[0]输出:[0]提示:两个链表的节点数目范围是[0,50]-100l1和l2均按非递减顺序排列方法1:递归思路与算法我们可以如下递归地定义两个链表里的merge操作(忽略边界情况,比如空链表等):也就是说,两个链表头部值较小的一个节点与剩下元素的merge操作结果合并。我们直

LeetCode.面试题02.05-链表求和-题解分析

题目来源面试题02.05.链表求和题目详情给定两个用链表表示的整数,每个节点包含一个数位。这些数位是反向存放的,也就是个位排在链表首部。编写函数对这两个整数求和,并用链表形式返回结果。示例:输入:(7->1->6)+(5->9->2),即617+295输出:2->1->9,即912进阶:思考一下,假设这些数位是正向存放的,又该如何解决呢?示例:输入:(6->1->7)+(2->9->5),即617+295输出:9->1->2,即912题解分析题目的要求是对链表的节点进行求和。题目的难点在于两个链表的长度可能不同,而且每个节点只能存放一个数位的元素。这里最直接的解法就是模拟法,或者叫做遍历法,同

算法题--从尾到头打印链表

5要求时间限制:1秒空间限制:32768K题目描述输入一个链表,从尾到头打印链表每个节点的值解题思路链表必须要从头开始访问,如果需要将打印顺序颠倒,可以利用栈的特性。有时候方法就是这么简单--如果想展示你的算法能力,可以写成递归--深度优先搜索代码/*structListNode{intval;structListNode*next;ListNode(intx):val(x),next(NULL){}};*/classSolution{public:vectorprintListFromTailToHead(ListNode*head){vectorres;stacktemp;while(he

算法题--从尾到头打印链表

5要求时间限制:1秒空间限制:32768K题目描述输入一个链表,从尾到头打印链表每个节点的值解题思路链表必须要从头开始访问,如果需要将打印顺序颠倒,可以利用栈的特性。有时候方法就是这么简单--如果想展示你的算法能力,可以写成递归--深度优先搜索代码/*structListNode{intval;structListNode*next;ListNode(intx):val(x),next(NULL){}};*/classSolution{public:vectorprintListFromTailToHead(ListNode*head){vectorres;stacktemp;while(he