Java 实现链表倒数第 k 个节点 - 代码示例
package CountDownListNode;
public class CountDown { public class ListNode{ int val; ListNode next; ListNode (int x){ val = x; } } public ListNode getKthFromEnd(ListNode head , int k){ ListNode front = head , behind = head; while(front != null && k>0){ front = front.next; k --; } while(front !=null){ front = front.next; behind = behind.next; } return behind; } } package CountDownListNode;
public class CountDownTest { public static void main(String[] args) { CountDown countDown = new CountDown();
// 创建链表
CountDown.ListNode node1 = countDown.new ListNode(1);
CountDown.ListNode node2 = countDown.new ListNode(2);
CountDown.ListNode node3 = countDown.new ListNode(3);
CountDown.ListNode node4 = countDown.new ListNode(4);
CountDown.ListNode node5 = countDown.new ListNode(5);
// 构建链表
node1.next = node2;
node2.next = node3;
node3.next = node4;
node4.next = node5;
// 测试获取倒数第k个节点
CountDown.ListNode result = countDown.getKthFromEnd(node1, 2);
System.out.println(result.val); // 输出4
}
}
原文地址: http://www.cveoy.top/t/topic/pYkB 著作权归作者所有。请勿转载和采集!