public void length() {
System.out.println(length(head, 0));
}
public int length(Node he, int count) {
if(he!=null) {
// System.out.println(he.data +" "+count++);
// count++;
// return length(he.next, count);
return length(he.next, count++);
}
return count;
}
위의 코드에서 링크 된 목록의 길이를 찾아야합니다. 동일한 코드를 실행하면 길이가 0입니다.하지만 주석이 달린 코드를 사용하면 올바른 길이를 얻게됩니다. 왜 그런 일이 일어나는거야?재귀를 기반으로 자바를 사용하여
'카운트 ++'실제로 통과'count', [편집하십시오 이 질문을 참조하십시오 게시물 증분 작동 방법] (http://stackoverflow.com/questions/2371118/how-do-the-post-increment-i--pre-increment-i-operators-work-in-java) – SomeJavaGuy
두 번째 매개 변수를 제거하고 단순히' return (he == null)? 0 : 1 + 길이 (he.next); '? – fabian
감사합니다. @fabian .. 나는 실제로 당신을 통해 다른 길을 찾았습니다. :) –