>  기사  >  백엔드 개발  >  PHP를 사용하여 연결리스트의 마지막 노드에서 K번째 노드를 가져오는 방법에 대한 설명

PHP를 사용하여 연결리스트의 마지막 노드에서 K번째 노드를 가져오는 방법에 대한 설명

jacklove
jacklove원래의
2018-06-30 17:47:261408검색

이 글은 주로 연결리스트의 마지막 노드에서 K번째 노드를 얻는 PHP의 방법을 소개하며, 연결리스트에 대한 PHP의 순회, 판단 및 기타 관련 연산 기술을 포함하여 도움이 필요한 친구들이 참고할 수 있습니다

이 예는 다음과 같습니다. 기사는 PHP에게 연결된 목록에서 두 번째 노드를 얻도록 지시합니다. 참고할 수 있도록 모든 사람과 공유하세요. 세부 사항은 다음과 같습니다.

Question

연결된 목록을 입력하고 연결 목록의 마지막 k번째 노드를 출력합니다.

솔루션 아이디어

이 질문은 값이 아닌 노드를 반환한다는 점에 유의하세요. 반환 값은 스택에 저장될 수 있습니다. 이는 반환 노드에서는 수행할 수 없습니다.

두 개의 포인터를 설정하고 먼저 첫 번째 포인터를 k-1번 이동합니다. 그런 다음 두 포인터가 동시에 이동합니다. 첫 번째 포인터가 마지막 노드에 도달하면 두 번째 포인터는 아래쪽에서 k번째 노드에 있습니다.

경계에 주의하세요: K의 길이가 연결된 목록의 길이를 초과할 수 있으므로 첫 번째 포인터의 다음이 비어 있으면 null이 반환됩니다.

구현 코드

<?php
/*class ListNode{
 var $val;
 var $next = NULL;
 function __construct($x){
  $this->val = $x;
 }
}*/
function FindKthToTail($head, $k)
{
 if($head == NULL || $k ==0)
  return NULL;
 $pre = $head;
 $last = $head;
 for($i=1; $i<$k; $i++){
  if($last->next == NULL)
   return NULL;
  else
   $last = $last->next;
 }
 while($last->next != NULL){
  $pre = $pre->next;
  $last = $last->next;
 }
 return $pre;
}

당신이 관심을 가질 수 있는 기사:

PHP에서 위에서 아래로 이진 트리를 인쇄하는 방법에 대한 설명

php header_php 기술을 통해 사용자 정의 데이터를 보내는 방법

php에서 어떻게 사용하는지에 대한 설명 출력 및 선택적 출력을 지우는 ob_start()

위 내용은 PHP를 사용하여 연결리스트의 마지막 노드에서 K번째 노드를 가져오는 방법에 대한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.