面试真题(一)

来源:互联网 发布:默纳克调试软件app 编辑:程序博客网 时间:2024/05/01 21:24

开始汇总面试碰到的代码题,为保密起见,不透露公司名字,但会把所有的编程题都记录下来,每一篇代表一家公司,我会尽量整理得快一点。


60分钟,10道单选+5道不定项选择+若干道填空+2道改错+1道编程。


1、给定一个链表,返回链表逆置后的结果。

思路:简单的链表逆置题,我一开始以为是逆序输出链表的值,想都没想就把链表给入了栈。。。后来发现没法改,只好在栈的基础上实现逆置,挺傻的。个人觉得它想要的答案应该是就地逆置。


//因为LeetCode有原题,所以就直接用了/** * Definition for singly-linked list. * struct ListNode { *     int val; *     ListNode *next; *     ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public:    ListNode* reverseList(ListNode* head) {        if(!head||!head->next) return head;        ListNode* prev=head;        head=head->next;        prev->next=nullptr;        while(head!=NULL){//这里实际情况判断写成while(head)就可以了            ListNode* p=head->next;            head->next=prev;            prev=head;            head=p;        }        return prev;    }};





0 0