ARTS 计划第四周

Algorithm

Remove Nth Node From End of List

Solution

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     struct ListNode *next;
 * };
 */
int GetLength(struct ListNode*head)
{
    if(head==NULL)
    {
        return 0;
    }
    struct ListNode *p=head;
    int length=1;
    while(p->next!=NULL)
    {
        length++;
        p=p->next;
    }
    return length;
}

struct ListNode* removeNthFromEnd(struct ListNode* head, int n) {
    int length=GetLength(head);
    struct ListNode * headnode=malloc(sizeof(struct ListNode));
    headnode->next=head;
    struct ListNode * headini;
    if(length>=1){
    int i=0;
    
    struct ListNode * p=headnode;
    while(i<length-n)
    {
        i++;
        p=p->next;
    }
    struct ListNode *tmp;
    tmp=p->next;
    p->next=p->next->next;
    free(tmp);
    }
    else if(length==0)
    {
        headini=NULL;
    }
    headini=headnode->next;
    return headini;
}

简单的链表实现,主要还是对空集的判断。

REVIEW

《信号和系统》奥本海姆,一本关于数字信号的初级的书本,初步阅读了书籍的导论部分,了解了信号的数字解析方式,这本书是进行图像处理和语音识别的基础课程,在以前学习这些内容的时候,自己多少有一些不知所措,看了这书的目录和导论部分,我才知道自己缺少的不仅是数学方面的知识,还有对于数学应用的工程内容。

TIPS

  • 网易开源了他的DUILIB界面库,很大的提升了DUILIB的使用功效,可以制作更多的动态效果。
  • lrc歌词内容解析,了解了基本的lrc歌词结构。
  • 使用了不完整的结构体(指针),没有初始化指针,给指针进行动态内存分配可以解决问题
  • 程序界面的制作,需要学习基本的功能需求流程图,这样对于程序整体的逻辑和程序的维护理解都有这莫大的好处。

SHARE

《编程珠玑》,一本可以从薄读到厚,从第一章开始就深入理解了计算机中的编码,排序和位操作的一些关系,可以了解不一样的计算机。

posted @ 2019-04-14 19:34  bookdrip  阅读(113)  评论(0编辑  收藏  举报