zoukankan      html  css  js  c++  java
  • java实现合并两个已经排序的列表

    相对于C++来说,Java的最大特点之一就是没有令人困惑的指针,但是我们不可否认,在某些特定的情境下,指针确实算的上一把利刃。虽然Java中没有明确定义出指针,但是由于类的思想,我们可以使用class来实现指针的操作。小二,上栗子-----合并两个已经排序的列表,输出合并后列表的头结点,且合并后的列表中的元素是有序的。

    需要时刻铭记于心的:在Java中,列表的一个节点其实就是某个类实例化的一个对象。

    示例代码如下:

     1 package DecemberOf2013;
     2 
     3 class ListNode{
     4     int val;
     5     ListNode next;
     6     public ListNode(int val) {
     7         this.val = val;
     8         this.next = null;
     9     }
    10 }
    11 
    12 public class MergeTowSortedLists {
    13     
    14     public ListNode mergeLists(ListNode l1, ListNode l2){
    15         
    16         ListNode p1 = l1;
    17         ListNode p2 = l2;
    18         
    19         ListNode fadeHead = new ListNode(0);
    20         ListNode pHead = fadeHead;
    21         
    22         while(p1 != null && p2 != null){
    23             if(p1.val <= p2.val){
    24                 pHead.next = p1;
    25                 p1 = p1.next; 
    26             }
    27             else{
    28                 pHead.next = p2;
    29                 p2 = p2.next; 
    30             }
    31             pHead = pHead.next;
    32         }
    33         
    34         if(p1 != null){
    35             pHead.next = p1;
    36         }
    37         else{
    38             pHead.next = p2;
    39         }
    40         
    41         return fadeHead.next;
    42     }
    43 }
    View Code

    由于Java中的内存回收机制,是否可以保证不会出现C++或者C语言中的野指针或者内存泄露问题呢?等待大牛的详解。

  • 相关阅读:
    利用 runtime,解决多次点击相同 button,导致重复跳转的问题-b
    dbcp数据库连接池管理
    dbutil组件的常见用法
    事务的概念及常用方法
    jdbc链接基础
    MySQL数据约束和关联查询
    mysql基本操作语句
    jsp常用标签和标签库及javaBean规范
    EL表达式
    会话过程保存数据对象cookie和session
  • 原文地址:https://www.cnblogs.com/RobertC/p/3493535.html
Copyright © 2011-2022 走看看