前往
大廳
主題

C/C++紀錄三十五<Increasing Order Search Tree> 2019/2/26

艾倫D索妮雅 | 2021-06-09 19:58:06 | 巴幣 0 | 人氣 105

Example 1:
Input: [5,3,6,2,4,null,8,1,null,null,null,7,9]
       5
      / \
    3    6
   / \    \
  2   4    8
/        / \
1        7   9
Output: [1,null,2,null,3,null,4,null,5,null,6,null,7,null,8,null,9]
1
  \
   2
    \
     3
      \
       4
        \
         5
          \
           6
            \
             7
              \
               8
                \
                 9
編譯碼:
/**
* Definition for a binary tree node.
* struct TreeNode
* {
*     int val;
*     TreeNode *left;
*     TreeNode *right;
*     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution
{
    public:
        void myfun(TreeNode* root, TreeNode** prev)
        {
            if (!root)
                return;
            myfun(root->right, prev);
            root->right=*prev;
            *prev =root;
            myfun(root->left,prev);
            root->left =NULL;
        }
        TreeNode* increasingBST(TreeNode* root)
        {
            TreeNode* prev =NULL;
            myfun(root, &prev);
            return prev;
        }
};

創作回應

更多創作