Leetcode 114. 二叉树展开为链表 解题思路及C++实现
生活随笔
收集整理的這篇文章主要介紹了
Leetcode 114. 二叉树展开为链表 解题思路及C++实现
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
解題思路:
使用遞歸的方法。根結點的左子樹中,最右邊的節點是左子樹成為鏈表后的最后一個節點,找到這個節點,然后把這個節點的右節點指向根結點的右子樹,同時,將根結點右子節點指向其左子節點,根結點的左子節點變為null,然后遞歸調用flatten函數。
?
/*** 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) return;TreeNode* right = root->right;if(root->left){root->right = root->left;root->left = NULL;TreeNode* temp = root->right;while(temp && temp->right) temp = temp->right;temp->right = right;flatten(root->right);}else if(root->right) flatten(root->right);} };?
?
?
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的Leetcode 114. 二叉树展开为链表 解题思路及C++实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python的re.findall()函
- 下一篇: Leetcode 116. 填充每个节点