面试题6:二叉树转单链表

Given a binary tree, flatten it to a linked list in-place.

For example,
Given

         1
        / 
       2   5
      /    
     3   4   6

The flattened tree should look like:

   1
    
     2
      
       3
        
         4
          
           5
            
             6

 1 class Solution {
 2 public:
 3     void flatten(TreeNode* root) {
 4         if (root == nullptr)
 5             return;
 6         flatten(root->left);
 7         flatten(root->right);
 8         TreeNode* tmp = root->right;
 9         root->right = root->left;
10         root->left = nullptr;
11         TreeNode* p = root;
12         while (p->right)
13             p = p->right;
14         p->right = tmp;
15     }
16 }
原文地址:https://www.cnblogs.com/wxquare/p/6848490.html