博客
关于我
学会链表中LeetCode三道题
阅读量:117 次
发布时间:2019-02-26

本文共 2560 字,大约阅读时间需要 8 分钟。

??????????

?????????

1. ????

????? head ?????????????????????????????????????????????????????????????

2. ????

??????????????????????????????????????????????????????????????????????

????

struct ListNode {    int val;    struct ListNode* next;};struct ListNode* middleNode(struct ListNode* head) {    struct ListNode* fast = head, *slow = head;    while (fast && fast->next) {        slow = slow->next;        fast = fast->next->next;    }    return slow;}

????????k???

1. ????

???????????????k????????????????1????

2. ????

??????????????????k??????????????????????????????????k????

????

struct ListNode {    int val;    struct ListNode* next;};struct ListNode* getKthFromEnd(struct ListNode* head, int k) {    struct ListNode* fast = head, *slow = head;    while (k--) {        if (fast == NULL) {            return NULL;        }        fast = fast->next;    }    while (fast) {        fast = fast->next;        slow = slow->next;    }    return slow;}

???????????

1. ????

??????????????????????????????

2. ????

???????????????????????????????????????????????????????????????????????????????

???????????

struct ListNode {    int val;    struct ListNode* next;};struct ListNode* mergeTwoLists(struct ListNode* l1, struct ListNode* l2) {    struct ListNode* head = NULL, *tail = NULL;    if (l1 == NULL) {        return l2;    }    if (l2 == NULL) {        return l1;    }    if (l1->val < l2->val) {        head = tail = l1;        l1 = l1->next;    } else {        head = tail = l2;        l2 = l2->next;    }    while (l1 && l2) {        if (l1->val < l2->val) {            tail->next = l1;            l1 = l1->next;        } else {            tail->next = l2;            l2 = l2->next;        }        tail = tail->next;    }    if (l1) {        tail->next = l1;    }    if (l2) {        tail->next = l2;    }    return head;}

??????????

struct ListNode {    int val;    struct ListNode* next;};struct ListNode* mergeTwoLists(struct ListNode* l1, struct ListNode* l2) {    struct ListNode* head = NULL, *tail = NULL;    head = tail = (struct ListNode*)malloc(sizeof(struct ListNode));    tail->next = NULL;    while (l1 && l2) {        if (l1->val < l2->val) {            tail->next = l1;            l1 = l1->next;        } else {            tail->next = l2;            l2 = l2->next;        }        tail = tail->next;    }    if (l1) {        tail->next = l1;    }    if (l2) {        tail->next = l2;    }    struct ListNode* node = head;    head = head->next;    free(node);    return head;}

??????????????????????????????????????????????????????????????

转载地址:http://gxrk.baihongyu.com/

你可能感兴趣的文章
python3读取redis返回数据带有'b'的问题
查看>>
Python3连接MySQL
查看>>
Python关于isinstance函数的解析 | 附Demo(全)
查看>>
Python3:setup.py:完成所有任务的PIP安装(Build_ext+Install)
查看>>
python4.0 gil_Python 并发编程系列--1、浅谈GIL历史及对多线程的影响
查看>>
python60行绘图程序_天底下最简单的QT画图板,就一个类,60行代码
查看>>
Python: AES加密与解密
查看>>
Python: Range() 最大尺寸;动态的还是静态的?
查看>>
Python: Windows下用 multiprocessing 的深坑
查看>>
python:Could not find platform independent libraries <prefix>解决方法
查看>>
Python:datetime tzinfo 时区名称文档
查看>>
Python:deepcopy(list) vs new_list = old_list[:]
查看>>
Python:Google API - 从消息中获取 mimeTypes
查看>>
Python:Google API - 从消息中获取 mimeTypes
查看>>
Python:subprocess.call,stdout to file,stderr to file,在屏幕上实时显示stderr
查看>>
Python:TypeError:无法连接“str“和“int“对象
查看>>
Python:XPath 在 ElementTree 中不可用
查看>>
Python:从 FTP 服务器下载文件
查看>>
python:从列表中创建元组列表
查看>>
Python:从嵌套列表中删除重复项
查看>>