【牛客面试必刷101】- 反转链表+数组中出现次数超过一半的数字+链表内指定区间反转

导读:本篇文章讲解 【牛客面试必刷101】- 反转链表+数组中出现次数超过一半的数字+链表内指定区间反转,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

1.反转链表

在这里插入图片描述
这个方法就是 头插法,从原链表头开始取元素,对新链表进行头插法。
具体代码如下:

public ListNode ReverseList(ListNode head) {
    //新链表
    ListNode newHead = null;
    while (head != null) {
        //先保存访问的节点的下一个节点,保存起来
        //留着下一步访问的
        ListNode temp = head.next;
        //每次访问的原链表节点都会成为新链表的头结点,
        //其实就是把新链表挂到访问的原链表节点的
        //后面就行了
        head.next = newHead;
        //更新新链表
        newHead = head;
        //重新赋值,继续访问
        head = temp;
    }
    //返回新链表
    return newHead;
}

在牛客上看到的题解,特别清晰
在这里插入图片描述
在这里插入图片描述

2.链表内指定区间反转

在这里插入图片描述
在这里插入图片描述

import java.util.*;

/*
 * public class ListNode {
 *   int val;
 *   ListNode next = null;
 * }
 */

public class Solution {
    /**
     *
     * @param head ListNode类
     * @param m int整型
     * @param n int整型
     * @return ListNode类
     */
    //
    //说明:方便理解,以下注释中将用left,right分别代替m,n节点

    public ListNode reverseBetween (ListNode head, int m, int n) {
        //设置虚拟头节点
        ListNode dummyNode = new ListNode(-1);
        dummyNode.next = head;
        ListNode pre = dummyNode;
        for (int i = 0; i < m - 1; i++) {
            pre = pre.next;
        }

        ListNode cur = pre.next;
        ListNode Cur_next ;
        for (int i = 0; i < n - m; i++) {
            Cur_next = cur.next;
            cur.next = Cur_next.next;
            Cur_next .next = pre.next;
            pre.next = Cur_next ;
        }
        return dummyNode.next;
    }
}

3.数组中出现次数超过一半的数字

在这里插入图片描述
在这里插入图片描述

import java.util.Arrays;

public class Solution {
    public int MoreThanHalfNum_Solution(int [] array) {
        int mid = array.length / 2;
        int count = 0;
        Arrays.sort(array);
        for (int i = 0; i < array.length; i++) {
            if (array[i] == array[mid]) {
                count++;
            }
        }
        if (count > mid) {
            return array[mid];
        }

        return  0 ;
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/119519.html

(0)
seven_的头像seven_bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!