자바 에서 링크 생 성 및 사용

10754 단어 자바leetcode
링크 생 성 및 사용
1. 링크 만 들 기:
a, class 클래스 ListNode 를 다음 과 같이 정의 합 니 다.
//        
class ListNode{
	int val;	//   data
	ListNode next;	//    node
	
	ListNode(int x){	//            ,             
		val = x;
	}
	//       
	public void add(int newval) {
		ListNode newNode = new ListNode(newval);
		if(this.next == null)
			this.next = newNode;
		else
			this.next.add(newval);
	}
	//     
	public void print() {
		System.out.print(this.val);
		if(this.next != null)
			{
				System.out.print("-->");
				this.next.print();
			}
	}
}

b. ListNode 클래스 를 정의 한 후에 우 리 는 노드 를 삽입 한 다음 에 링크 를 인쇄 합 니 다.
public class CreateListNode 
{
	public static void main(String[] args)
	{
		ListNode l1 = new ListNode(1);	//       l1 (              )
		l1.add(2);				//    ,  
		l1.add(3);
		l1.print();
	}
}

2. 링크 의 실제 응용: 두 개의 질서 있 는 링크 를 합 친다.
제목 설명:
                     。                       。 

  :

  :1->2->4, 1->3->4
  :1->1->2->3->4->4

제목 분석:
       :
	        ,                  
  :
	    ,         ,        
    :
	         (     ;        ),               

코드 디 스 플레이 (검 증 됨):
//leetcode-java
/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
class Solution {
    public ListNode mergeTwoLists(ListNode l1, ListNode l2) 
    {
    	//c    
        // if(l1 == NULL)
        //     return l2;
        // if(l2 == NULL)
        //     return l1;
        // if(l1.val < l2.val)
        // {
        //     l1.next = mergeTwoLists(l1.next,l2);
        //     return l1;
        //  }
        // else
        // {
        //     l2.next = mergeTwoLists(l1,l2.next); 
        //     return l2;
        // }
        ListNode dummyHead = new ListNode(0);//       , dummyHead      
		ListNode curr = dummyHead;
		while(l1 != null && l2 != null)
		{	if(l1.val < l2.val)
			{
				curr.next = l1;
				curr = curr.next;
				l1 = l1.next;
			}
			else
			{
				curr.next = l2;
				curr = curr.next;
				l2 = l2.next;
			}
		}
		//       ,          curr  
		if(l1 == null)
			curr.next = l2;
		else
			curr.next = l1;
		return dummyHead.next; //           ,          
    }
}


거품:
             , : 
	
	             ,
	                
	......
           ,0.0

좋은 웹페이지 즐겨찾기