輸入一個鏈表,輸出該鏈表中倒數第k個結點。

思路:先將鏈表放進list裏面,利用了list的有序性。然後要比較與k與鏈接表長度之間的關係

代碼如下:

package checkArray;

import java.util.ArrayList;
import java.util.List;

import javax.crypto.NullCipher;

public class Test11 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		ListNode head=new ListNode(1);
		head.next=new ListNode(2);
		head.next.next=new ListNode(3);
		int k=1;
		ListNode listNode=FindKthToTail(head,k);
		System.out.println(listNode.val);
	}
	
	 public static ListNode FindKthToTail(ListNode head,int k) {
		if(head==null) return null;
		//判斷鏈表的長度與k的長度
		int headLength=0;
		List<ListNode> list=new ArrayList<>();
		while (head != null) {
			list.add(head);
			head = head.next;
			headLength++;
		}
		
		 //System.out.println(headLength);
		if(headLength>=k&&k>0) {
			return list.get(list.size()-k);
		}else {
			return null;
		}
		 
	 }
}
	class ListNode {
		int val;
		ListNode next = null;

		ListNode(int val) {
			this.val = val;
		}
	}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章