leetcode114 二叉树展开为链表

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/artisans/article/details/89177886
/**
 * 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) return;
		f(root);

		while (root)
		{
			//cout << root->val << "\t";

			root->right = root->left, root->left = nullptr;
			root = root->right;
		}
	}

	void f(TreeNode* root) {

		if (!root) return;

		if (_pre == nullptr)
		{
			_pre = root;
		}
		else
		{
			_pre->left = root;
			_pre = root;
		}
	
		f(root->left);
		f(root->right);
	}

	TreeNode* _pre = nullptr;
};

猜你喜欢

转载自blog.csdn.net/artisans/article/details/89177886
今日推荐