각 노드 II에서 LeetCode 행복 브러시 제목 오십오일 --117. 채우기 다음 마우스 오른쪽 포인터

문제가 해결 될 수 있습니다 :

1. 문제가 날 귀찮게되어, 사람들은 다음을 참조 입력 트리를 처리하는 방법이다 싶어,이 계층 구조가 명확하고 직관적 인 방법입니다 통과하는 것이 가장 좋습니다.

포인터의 사용에 대하여 2 *

따라서, 코드 리드가 완료되지 않는 경우, 주요 기능은 솔루션의 클래스를 호출하지가

각 노드 II에서 117 채우기 다음 자리 포인터
매질

이진 트리 감안할 때

구조체 노드 { 
  INT 발; 
  노드 * 왼쪽; 
  노드 * 권리; 
  다음 노드 *; 
}

그 바로 옆에 노드를 가리 키도록 다음의 각 포인터를 채 웁니다. 더 바로 옆에 노드가없는 경우, 다음 포인터로 설정해야합니다  NULL.

처음에는 모두 다음 포인터로 설정됩니다  NULL.

 

후속 :

  • 당신은 일정한 여분의 공간을 사용할 수 있습니다.
  • 재귀 접근 방식은이 문제에 대한 여분의 공간으로 간주하지 않습니다 암시 스택 공간을 가정 할 수있다, 괜찮습니다.

 

예 1 :

INPUT : 루트 = 1,2,3,4,5, 널 ,. 7] 
출력 :. 1, # 3, #, 4,5,7, #] 
설명 : 주어진 이진 트리 (그림 A 위에 ), 함수는 다음의 각 채워야 단지 그림 B에는 '#'각 레벨의 끝을 의미와 함께, 다음 포인터로 연결로 출력 레벨 순서에 연재에서처럼, 그 바로 옆에 노드를 가리 키도록 포인터를. 

이 질문은 차이의 질문에 변형 :
트리의 특정 노드가 있는지 여부를 구분하지 않고 완전한 이진 트리에이 나무는 재귀, 비 재귀 두 종류 통과해야합니다. 재귀 방법은 다를 수 있지만, 비 재귀 방법
도 적용 할 수있다. 비 재귀 방법은 좋은 것, 그리고 결합 된 스택, 스택에 요소가있을 것, 그 자체가 가져 오는 나무의 영향을 무시했다. 이 방법은 공간이며
이중 순환이 있지만, 복잡성에 매우 잘 수행하지만, 사이클의 수는 적은 이유 것으로 추정된다 수행
#INCLUDE <. 비트 / stdc ++ H>
 / * 
멀티 라인 주석 
* / 
사용  스페이스 성병;
// 노드에 대한 정의. 
클래스 노드 {
 공개 :
     INT 발; 
    노드 *는 왼쪽; 
    노드 * 권리; 
    노드 * 다음;
// 세 가지 다른 종류의 초기화 
    발 (: 노드 () 0 ), 왼쪽 (NULL), 오른쪽 (NULL), 다음 (NULL) {} 

    노드 ( INT _val) : 발 (_val), 왼쪽 (NULL)을, 오른쪽 (NULL ), 다음 (NULL) {} 

    노드 ( INT의 _val, 노드 * _Left, 노드 * _right, 노드 *_next) 
        : 발 (_val), 왼쪽 (_Left), 오른쪽 (_right), 다음 (_next) {} 
}; 
// 솔루션의 정의 
클래스 솔루션 {
 공개 : 
    노드 * 연결 (노드 * 루트) {
         // 특별한 경우 거래 
        하는 경우 (루트!) 반환 NULL;
        // 라인별로 저장 큐에서 정의 
        대기열 <노드 *> Q 단계; 
        q.push (루트); 
        //이 여전히 노드를 반복하지 않은 
        동안 (! q.empty ()) 
        { 
            INT 렌 = q.size ();
             ( INT I =0 ; 나는 <렌; ++ I) 
            { 
                기지국 * t = q.front (); 
                () q.pop; 
                경우 (I <len- 1 ) T-> 다음 = q.front ();
                경우 (T->는 q.push을 (T-> 좌) 왼쪽);
                경우 (T -> 우) q.push (T-> 오른쪽); 
            } 
        } 
        반환 루트; 
    } 
};
 
  

 

 

추천

출처www.cnblogs.com/Marigolci/p/12008181.html