本文共 715 字,大约阅读时间需要 2 分钟。
采用中序遍历:
/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { }};*/class Solution {public: void dfs(vector& v,TreeNode* p){ if(p == NULL) return ; dfs(v,p->left); v.push_back(p); dfs(v,p->right); } void doit(vector v){ int l = v.size(); v[0]->left = NULL; for(int i=1;i right = v[i]; v[i]->left = v[i-1]; } v[l-1]->right = NULL; } TreeNode* Convert(TreeNode* pRootOfTree) { if(pRootOfTree == NULL) return NULL; vector v; dfs(v,pRootOfTree); doit(v); return v[0]; }};
转载地址:http://qfwji.baihongyu.com/