검지 Offer 면접 문제 8 두 갈래 나무의 다음 노드

1415 단어

제목 설명


두 갈래 나무와 그 중의 한 결점을 정하십시오. 순서를 반복하는 다음 결점을 찾아 돌아오십시오.나무의 결점은 좌우 자결점뿐만 아니라 부모 결점을 가리키는 바늘도 포함하고 있음을 주의하십시오.
/*
struct TreeLinkNode {
    int val;
    struct TreeLinkNode *left;
    struct TreeLinkNode *right;
    struct TreeLinkNode *next;
    TreeLinkNode(int x) :val(x), left(NULL), right(NULL), next(NULL) {
        
    }
};
*/
/*
struct TreeLinkNode {
    int val;
    struct TreeLinkNode *left;
    struct TreeLinkNode *right;
    struct TreeLinkNode *next;
    TreeLinkNode(int x) :val(x), left(NULL), right(NULL), next(NULL) {
        
    }
};
*/
class Solution {
public:
    TreeLinkNode* GetNext(TreeLinkNode* pNode)
    {
        if(pNode == NULL) return NULL;
        if(pNode->right!=NULL)// , 
        {
            pNode = pNode->right;
            while(pNode->left != NULL){
                pNode = pNode->left;
            }
            return pNode;
        }else if(pNode->next!=NULL){// , 
            TreeLinkNode *tPrent = new TreeLinkNode(pNode->val);
            TreeLinkNode *tChild = new TreeLinkNode(pNode->val);
            tChild = pNode;
            tPrent = pNode -> next;
            
            while(tPrent->left != tChild && tPrent!=NULL ){
                tChild = tPrent;
                tPrent = tPrent -> next;
            }
            return tPrent;
        }
        return NULL;
    }
};

좋은 웹페이지 즐겨찾기