标签:ret 前序遍历 展开 pop col init alt 技术 def
/** * 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 flatten(TreeNode* root) { if(root==NULL)//记住!root可能为[] return; stack<TreeNode*> temp; TreeNode* first=root;//记住上一个节点 if(root->right!=NULL) temp.push(root->right); if(root->left!=NULL) temp.push(root->left); while(!temp.empty()) { TreeNode* node=temp.top();//前序遍历 temp.pop(); if(node->right!=NULL) temp.push(node->right); if(node->left!=NULL) temp.push(node->left); first->right=node;//同时原地记录顺序 first->left=NULL; first=node; } } };
分析:
思路很简单,就是前序遍历里加一点东西就好。
标签:ret 前序遍历 展开 pop col init alt 技术 def
原文地址:https://www.cnblogs.com/CJT-blog/p/11223295.html