链表中倒数第k个结点

输入一个链表,输出该链表中倒数第k个结点。

用递归做。开始一层层地递归直到链表尾部,然后一层层出递归,出到地K层的时候那个节点就是倒数第K个节点

 其实只要函数xFindKthToTail就可以,但要考虑OJ平台如何训练测试用例的。它运行一次main函数后多次调用xFindKthToTail(),如果没有一个函数去每次重新将val置0,anode置null的话,那每次val都是上一个测试用例的值而不是0。

OJ平台用全局变量的时候一定要注意这一点。

public class Solution {
	 public static int val=0;
	 static ListNode anode=null;
	 public static ListNode FindKthToTail(ListNode head,int k) {
		 val=0;
		 anode=null;
		 if(head!=null)
			xFindKthToTail(head,k);
		 return anode;
  }
	 public static ListNode xFindKthToTail(ListNode head,int k) {
		 if(head.next!=null){   	
			 xFindKthToTail(head.next,k);
		   }
		    val++;
		    if(val==k){
		    	anode= head;    	
		    }   
		    return anode;
	 }
	 }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值