/*
struct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
TreeNode(int x) :
val(x), left(NULL), right(NULL) {
}
};*/
class Solution {
public:
TreeNode* curNode = nullptr;
TreeNode* pHead = nullptr;//存链表的头节点
TreeNode* Convert(TreeNode* pRootOfTree) {
if (pRootOfTree == nullptr)
return nullptr;
Convert(pRootOfTree->left);
if (curNode == nullptr)
{
curNode = pRootOfTree;
pHead = pRootOfTree;// 此时cur是最左侧的节点, 即根节点
}
else
{
curNode->right = pRootOfTree;//当前节点curNode的后继节点(right)是pRootOfTree
pRootOfTree->left = curNode;//pRootOfTree的前驱节点(left)是curNode
curNode = pRootOfTree;//将curNode向后移动
}
Convert(pRootOfTree->right);
return pHead;
}
};
struct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
TreeNode(int x) :
val(x), left(NULL), right(NULL) {
}
};*/
class Solution {
public:
TreeNode* curNode = nullptr;
TreeNode* pHead = nullptr;//存链表的头节点
TreeNode* Convert(TreeNode* pRootOfTree) {
if (pRootOfTree == nullptr)
return nullptr;
Convert(pRootOfTree->left);
if (curNode == nullptr)
{
curNode = pRootOfTree;
pHead = pRootOfTree;// 此时cur是最左侧的节点, 即根节点
}
else
{
curNode->right = pRootOfTree;//当前节点curNode的后继节点(right)是pRootOfTree
pRootOfTree->left = curNode;//pRootOfTree的前驱节点(left)是curNode
curNode = pRootOfTree;//将curNode向后移动
}
Convert(pRootOfTree->right);
return pHead;
}
};