剑☞offer~转自牛客网
来源:互联网 发布:奥凯航空的航线网络 编辑:程序博客网 时间:2024/06/05 03:39
算法1:
输入一个链表,反转链表后,输出链表的所有元素。
/*
struct ListNode {
int val;
struct ListNode *next;
ListNode(int x) :
val(x), next(NULL) {
}
};*/
class Solution {
public:
ListNode* ReverseList(ListNode* pHead) {
ListNode *ans = NULL;
ListNode *temp = NULL;
while(pHead){
temp = ans;
ans = pHead;
pHead = pHead->next;
ans->next = temp;
}
return ans;
}
};
/*
*链表的逆转是可以让我们从一个链表中取到数据然后再加入另一个链表
*在此过程中我们需要把新建数据保存起来,后面再以此加入到我们新的数据后面->next
*/
算法2:
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
/*
struct ListNode {
int val;
struct ListNode *next;
ListNode(int x) :
val(x), next(NULL) {
}
};*/
class Solution {
public:
ListNode* Merge(ListNode* pHead1, ListNode* pHead2)
{
if(pHead1 == NULL && pHead2 == NULL){
return NULL;
}
if(pHead1 == NULL || pHead2 == NULL){
return pHead1 == NULL ? pHead2 : pHead1;
}
ListNode *pt1 = pHead1;
ListNode *pt2 = pHead2;
ListNode *temp = NULL;
ListNode *newList = NULL;
if(pt1->val <= pt2->val){
temp = newList = pt1;
pt1 = pt1->next;
}else{
temp = newList = pt2;
pt2 = pt2->next;
}
while(pt1 != NULL && pt2 != NULL)
{
if(pt1->val <= pt2->val){
temp->next = pt1;
pt1 = pt1->next;
}else{
temp->next = pt2;
pt2 = pt2->next;
}
temp = temp->next;
}
if(pt2 != NULL)
{
temp->next = pt2;
}
if(pt1 != NULL)
{
temp->next = pt1;
}
return newList;
}
};
- 剑☞offer~转自牛客网
- Offer档次排名(转自北邮人)
- 转自 计算机硕士找offer的总结 节选
- 链表常见操作【整理自剑指offer及csdn】
- offer来啦(签约解约 公司待遇)---转自应届生,大家注意看看哈!忽忽
- 转自计算机学院一个offer大神的面经:潜心修炼,厚积薄发
- 转自计算机学院offer大神的面经:准备过程中的一些建议和看法
- 一线顶级互联网公司offer的成功经验【转自IT面试】
- 转自计算机学院offer大神的面经:准备过程中的一些建议和看法
- 题解剑指offer
- 剑OFFER一道题
- 剑指offer 牛客网 。。。
- 牛客网offer直通
- 牛客网-剑指offer
- 牛客网-剑指offer
- Offer
- offer
- offer
- 如何降低win8.1的磁盘读写率
- R 语言制作词云
- UIButton的contentEdgeInsets属性
- DISA STIG
- hdu 3962(AC自动机+矩阵优化dp)
- 剑☞offer~转自牛客网
- UC 浏览器调用支付宝本地支付
- pat1008:数组元素循环右移问题
- Activity和Service的启动
- 小东西
- 15、vs2010实践中遇到问题汇总
- obj文件
- Codeforces Round #345 (Div. 2)题解
- Allen OpenCart 多功能自适应主题模板 ABC-0705