검지offer(26)-이차 검색 트리와 양방향 체인 테이블

2524 단어 검지offer 퀴즈

두 갈래 검색 트리와 양방향 체인 테이블


제목 설명


두 갈래 검색 트리를 입력하면 두 갈래 검색 트리를 정렬된 양방향 체인 테이블로 변환합니다.새 결점을 만들 수 없으며 트리에서 결점 포인터의 방향을 조정할 수 있습니다.

코드

/*
struct TreeNode {
    int val;
    struct TreeNode *left;
    struct TreeNode *right;
    TreeNode(int x) :
            val(x), left(NULL), right(NULL) {
    }
};*/
class Solution {
public:
    void ConvertNode(TreeNode* pRoot, TreeNode** pListLast)
{
    if (pRoot == NULL)
        return;
    TreeNode* ptmp = pRoot;
    if (pRoot->left)
        ConvertNode(pRoot->left, pListLast);
    ptmp->left = *pListLast;
    if (*pListLast)
        (*pListLast)->right = ptmp;
    *pListLast = ptmp;
    if (pRoot->right)
        ConvertNode(pRoot->right, pListLast);
}
TreeNode* Convert(TreeNode* pRootOfTree)
{
    //      
    TreeNode* pListLast = NULL;
    ConvertNode(pRootOfTree, &pListLast);
    //         
    TreeNode* pListHead = pListLast;
    while (pListHead && pListHead->left)
        pListHead = pListHead->left;
    return pListHead;
}
};

좋은 웹페이지 즐겨찾기