题解 | #二叉树的深度#

链表的奇偶重排

http://www.nowcoder.com/practice/02bf49ea45cd486daa031614f9bd6fc3

//注意这题有个大坑就是对奇偶位上的元素不用排序。。
/**
 * struct ListNode {
 *    int val;
 *    struct ListNode *next;
 *    ListNode(int x) : val(x), next(nullptr) {}
 * };
 */
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param head ListNode类 
     * @return ListNode类
     */
    ListNode* oddEvenList(ListNode* head) {
        // write code here
        if(head==NULL||head->next==NULL)
            return head;
        int flag=1;//奇数表示当前节点为奇数位的节点,偶数表示当前节点为偶数位的节点
        ListNode*head1=NULL,*head2=NULL;
        int arr1[100002],arr2[100002],ans1=0,ans2=0;
        while(head){
            if(flag%2==0){
                arr2[ans2++]=head->val;
            }
            else{
                arr1[ans1++]=head->val;
            }
            head=head->next;
            flag++;
        }
        ListNode*tmp=NULL;
        for(int i=0;i<ans1;i++)
        {
            if(head1==NULL)
            {
                ListNode*s=new ListNode(arr1[i]);
                s->next=NULL;
                head1=s;
                tmp=s;
            }
            else{
                ListNode*s=new ListNode(arr1[i]);
                s->next=NULL;
                tmp->next=s;
                tmp=s;
            }
        }
        ListNode*tmp2=NULL;
        for(int i=0;i<ans2;i++)
        {
            if(head2==NULL){
                ListNode*s=new ListNode(arr2[i]);
                s->next=NULL;
                head2=s;
                tmp2=s;
            }
            else{
                ListNode*s=new ListNode(arr2[i]);
                s->next=NULL;
                tmp2->next=s;
                tmp2=s;
            }
        }
        if(tmp==NULL)
            return head2;
        if(tmp!=NULL&&head2==NULL)
            return head1;
        tmp->next=head2;
        return head1;
    }
};
全部评论

相关推荐

02-12 17:30
已编辑
字节跳动_实习生(实习员工)
要怎么办呢牛:我觉得大厂日常实习最大的意义就是给自己背书,一个好公司的实习就像一个好学历似的,能够给自己增加一个标签,让别人觉得你可以。(至于真正实习干了啥,这个感觉并不太重要)。当然一家之言,仅供参考。另外,楼主已经很强了,实习毕业双双拿下,已经领先好多好多人了,羡慕啊
点赞 评论 收藏
分享
2024-12-26 20:46
复旦大学 C++
国棉17厂丶小王:拿了offer的那个周末晚上去网吧通宵,去网吧不知道玩什么刷了lc的每日一题,然后试着第一次打开了三角洲行动,从此少了一个已经刷了700道题的lc用户,但是烽火地带多了一只🐭🐭
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务