链表的头插,尾插,逆序 and 合并两个有序表

链表的头插,尾插,逆序(20min)

import java.util.Arrays;
import java.util.Scanner;

public class NodeUse {
    // 头插法
    public static NodeX headSert(int[] arr){
        NodeX head = null;
        for(int i = 0; i < arr.length; i++){
            NodeX q = new NodeX(arr[i]);
            q.next = head;
            head = q;
        }
        return head;
    }
    // 尾插法
    public static NodeX tailSert(int[] arr){
        NodeX head = new NodeX();
        NodeX p = head;
        for(int i = 0; i < arr.length; i++){
            NodeX q = new NodeX(arr[i]);
            p.next = q;
            q.next = null;
            p = q;
        }
        return head.next;
    }
    // 逆序
    public static NodeX reserseNode(NodeX head){
        NodeX p = head.next;
        NodeX q = head;
        NodeX w;
        q.next = null;
        while(p != null){
            w = p.next;
            p.next = q;
            q = p;
            p = w;
        }
        return q;
    }


    public static void main(String[] args) {
        // 进行实际操作
        Scanner in = new Scanner(System.in);
        System.out.println("请输入个数:");
        int num = in.nextInt();
        int[] arr = new int[num];
        System.out.println("输入数组:");
        for(int i = 0; i < num; i++){
            arr[i] = in.nextInt();
        }
        System.out.println(Arrays.toString(arr));
        NodeX head = headSert(arr);
        System.out.println("头插法:" + head.toString());
        head = null;
        head = tailSert(arr);
        System.out.println("尾插法:" + head.toString());
        head = reserseNode(head);
        System.out.println("逆序:" + head.toString());
    }
}
class NodeX{
    int val;
    NodeX next;
    public NodeX(){}
    public NodeX(int val){
        this.val = val;
    }
    public String toString(){
        if(next == null)
            return val + "";
        return val + " -> " + next.toString();    
    }
}

合并两个有序链表

public static LinkNode hand(LinkNode link1 ,LinkNode link2){  //合并两个有序链表
       LinkNode link3=new LinkNode();
       LinkNode flag=link3;
       while (link1!=null &&link2!=null){
           int a=link1.key;
           int b=link2.key;
           if (a<b){
               flag.next = link1;
               flag=flag.next;
               link1=link1.next;
           }else {
               flag.next = link2;
               flag=flag.next;
               link2=link2.next;
           }
       }
       if (link1==null){
           flag.next = link2;
       }else {
           flag.next = link1;
       }
       return link3.next;
   }

合并两个有序数组(5min)

import java.util.Arrays;

public class Codetest {
    
	public static void main(String[] www) {
    	int[] arr1 = {1,2,4,6,8,9,11,14,17,21,24,26,33};
    	int[] arr2 = {2,5,8,9,11,14,17,21,22};
    	int[] arr3 = merge(arr1,arr2);
    	System.out.println(Arrays.toString(arr3));
    }
    // 合并有序数组
	public static int[] merge(int[] x1, int[] x2) {
		int[] x3 = new int[x1.length + x2.length];
		int q = 0;
        int p = 0;
        int i = 0;
        while(q < x1.length && p < x2.length){
            x3[i++] = x1[q] > x2[p] ? x2[p++]:x1[q++];
        }
        while(q < x1.length){
            x3[i++] = x1[q++];
        }
        while(p < x2.length){
            x3[i++] = x2[p++];
        }
		return x3;
	}
}

相关推荐

  1. and 合并有序

    2024-04-09 11:52:03       14 阅读
  2. 2024-04-09 11:52:03       39 阅读
  3. Leetcode:合并有序

    2024-04-09 11:52:03       6 阅读
  4. 合并有序

    2024-04-09 11:52:03       8 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-09 11:52:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-09 11:52:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-09 11:52:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-09 11:52:03       18 阅读

热门阅读

  1. [C语言]二分查找

    2024-04-09 11:52:03       17 阅读
  2. restic备份

    2024-04-09 11:52:03       15 阅读
  3. [23年蓝桥杯] 买二赠一

    2024-04-09 11:52:03       12 阅读
  4. git使用

    git使用

    2024-04-09 11:52:03      12 阅读
  5. git 的使用,及其基本指令。

    2024-04-09 11:52:03       12 阅读
  6. go interface{} 作为函数参数

    2024-04-09 11:52:03       12 阅读
  7. 1006 换个格式输出整数

    2024-04-09 11:52:03       13 阅读
  8. Flutter 使用flutter_swiper_null_safety 实现轮播图

    2024-04-09 11:52:03       12 阅读
  9. css不知道宽度,如何绘制一个正方形

    2024-04-09 11:52:03       14 阅读
  10. Getshell sql注入

    2024-04-09 11:52:03       12 阅读