zoukankan      html  css  js  c++  java
  • 打印两个有序链表的公共部分

    要求:

           给定两个有序链表的头指针head1和head2, 打印两个链表的公共部分

    思路:

    if 【head1】>【head2】,【head1】往下移动;

    if 【head1】<【head2】,【head2】往下移动;

    if 【head1】=【head2】,打印这个值,【head1】【head2】都往下移动;

    if 【head1】=【head2】,打印这个值,【head1】【head2】都往下移动;

    public class Problem01_PrintCommonPart {
        public static class Node{
            public int value;
            public Node next;
            public Node(int data){
                this.value = data;
            }        
        }
        
        public static void printCommonPart(Node head1, Node head2){
            System.out.println("Common part:");
            while(head1 != null && head2 != null){
                if (head1.value < head2.value){
                    head1 = head1.next;                
                }else if (head1.value > head2.value){
                    head2 = head2.next;                
                }else {
                    System.out.println(head1.value + "");
                    head1 = head1.next;
                    head2 = head2.next;                
                }
            }
            System.out.println();
        }
        
        public static void printLinkedList(Node node) {
            System.out.print("Linked List: ");
            while (node != null) {
                System.out.print(node.value + " ");
                node = node.next;
            }
            System.out.println();
        }
        
        
    
        public static void main(String[] args) {
            Node node1 = new Node(2);        
            node1.next = new Node(3);
            node1.next.next = new Node(5);
            node1.next.next.next = new Node(6);
    
            Node node2 = new Node(1);
            node2.next = new Node(2);
            node2.next.next = new Node(5);
            node2.next.next.next = new Node(7);
            node2.next.next.next.next = new Node(8);
    
            printLinkedList(node1);
            printLinkedList(node2);
            printCommonPart(node1, node2);
    
        }
    
    }

    运行结果:

    Linked List: 2 3 5 6 
    Linked List: 1 2 5 7 8 
    Common part:
    2
    5
  • 相关阅读:
    Maven版本管理
    ArrayList集合实现RandomAccess接口有何作用?为何LinkedList集合却没实现这接口
    java常用集合框架关系
    重写equals和hashCode
    项目的继承和聚合详解
    Installation Manager1.8安装
    关于java按位操作运算
    正数负数的二进制表示
    springboot问题排解
    int和Integer有什么区别
  • 原文地址:https://www.cnblogs.com/xiyuan2016/p/6831594.html
Copyright © 2011-2022 走看看