[Leetcode] Flatten Binary Tree to Linked List
来源:互联网 发布:系统重装win10软件 编辑:程序博客网 时间:2024/05/18 02:04
题目:
Given a binary tree, flatten it to a linked list in-place.
For example,
Given
1 / \ 2 5 / \ \ 3 4 6The flattened tree should look like:
1 \ 2 \ 3 \ 4 \ 5 \ 6将二叉树转换为链表,注意到输出的顺序跟前序完全一样,所以自然想到在前序遍历的基础上稍作修改。
void flatten(TreeNode *root) {if(root==NULL) return ;TreeNode *x=NULL;stack<TreeNode*> stk;stk.push(root);while(!stk.empty()){ x=stk.top();stk.pop();if(x->right !=NULL) stk.push(x->right);if(x->left !=NULL) stk.push(x->left);x->left=NULL; //增加的地方;if(!stk.empty()) x->right=stk.top();else x->right=NULL;}}
扩展:按照中序遍历的顺序将二叉树转换为双向链表。
其方法也是在中序遍历的基础上修改节点。
TreeNode * bintreeToList2(TreeNode *x){stack<TreeNode *> stk;TreeNode *node=x;TreeNode *res=NULL;TreeNode *pre=NULL;int flag=1;while(node != NULL || !stk.empty()){while( node !=NULL){stk.push(node);node=node->left;}node=stk.top();if( flag==1) {res=node;//保存头结点flag=0;}if(pre!=NULL)pre->right=node;//就是这里前一个节点指向栈的下一个,而不是原来的node->left=pre;pre=node ;//更新前一个节点node=node->right ; //查找右半部分stk.pop();}return res;}
0 0
- LeetCode: Flatten Binary Tree to Linked List
- LeetCode Flatten Binary Tree to Linked List
- LeetCode: Flatten Binary Tree to Linked List
- [Leetcode] Flatten Binary Tree to Linked List
- [LeetCode] Flatten Binary Tree to Linked List
- Leetcode: Flatten Binary Tree to Linked List
- leetcode Flatten Binary Tree to Linked List
- LeetCode Flatten Binary Tree to Linked List
- LeetCode - Flatten Binary Tree to Linked List
- 【leetcode】Flatten Binary Tree to Linked List
- [LeetCode]Flatten Binary Tree to Linked List
- [Leetcode]Flatten Binary Tree to Linked List
- [leetcode]Flatten Binary Tree to Linked List
- LeetCode-Flatten Binary Tree to Linked List
- [leetcode] Flatten Binary Tree to Linked List
- LeetCode - Flatten Binary Tree to Linked List
- LeetCode:Flatten Binary Tree to Linked List
- [LeetCode] Flatten Binary Tree to Linked List
- Objective-C中的instancetype和id区别
- 拦截器、过滤器和监听器
- [Android界面] GridView 中含有两个以上的Button时Item点击事件没有效果
- 矩阵快速幂斐波那契数列
- VDSM(5)调试
- [Leetcode] Flatten Binary Tree to Linked List
- Reorder List
- Python之道~在OpenShift上部署Python
- URL中#(井号)的作用
- toms官方網 mkp1 K4I WKovk
- php每日学习总结(5)
- db2 系统表查询
- 私有化构造函数的作用
- 703n路由器 刷openwrt 修改 串口双向传输和串口波特率