![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
编程题之链表类
qq_33436509
这个作者很懒,什么都没留下…
展开
-
从尾到头打印链表
输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。方法1:利用栈先进后出放入特点,先整体入栈,然后出栈一个打印一个class Solution {public: vector<int> printListFromTailToHead(ListNode* head) { stack<ListNode*> Tstack; ...原创 2018-08-09 15:34:43 · 83 阅读 · 0 评论 -
链表中倒数第k个节点
思路:1,倒数第k个节点 就是顺数n-k+1个节点,先遍历链表 求出节点数。然后再遍历。这样会遍历两遍链表,不推荐。 2,使用快慢指针,快慢指针同时指向头节点,快指针向后移动k-1步。然后一起向后移,直到快指针指向尾节点,此时慢指针指向的节点就是所求节点注意:检查参数,考虑节点数小于k的时候 class Solution {public: ListNode*...原创 2018-08-09 15:58:13 · 172 阅读 · 0 评论 -
反转链表
输入一个链表,反转链表后,输出新链表的表头 思路:使用三个指针,保存next和pre所指向的节点。 class Solution {public: ListNode* ReverseList(ListNode* pHead) { if(pHead==NULL) return NULL; ListNode*...原创 2018-08-09 16:07:12 · 104 阅读 · 0 评论 -
合并两个排序的链表
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。思路:两个链表头部比较,哪个小插入链表3。链表1的头部和链表头部的next比较或者链表1的头部next和链表头部比较,以此类推。使用递归解决class Solution {public: ListNode* Merge(ListNode* pHead1, ListNode* pHea...原创 2018-08-09 16:15:43 · 73 阅读 · 0 评论