leetcode Flatten Binary Tree to Linked List树

原创 2015年07月06日 16:54:27

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

click to show hints.

Hints:

If you notice carefully in the flattened tree, each node's right child points to the next node of a pre-order traversal.

题目意思是把一个二叉树给拍扁,仔细观察下其实就是先序遍历,提示里也说了是先序遍历,最直观的可以相当先把先序遍历的结果存起来,再一个一个接到右边,但总感觉很low,可以直接先序遍历的时候进行操作,同样,如果要接的话肯定要用到额外的一个节点tail,先序遍历的时候每次把当前节点接到tail的右边,然后tail的左边置空,再把当前节点赋给tail。

class Solution {
public:
	TreeNode* tail=NULL;//当前指针
	void preorder(TreeNode*root)
	{
		if (root!=NULL)
		{
			TreeNode*left=root->left;
			TreeNode*right = root->right;
			if (tail==NULL)//根节点
			{
				tail = root;
			}
			else
			{
				tail->right = root;
				tail->left = NULL;
				tail = root;
			}
			preorder(left);
			preorder(right);
		}
	}
	void flatten(TreeNode* root) {
		if (!root) return;
		preorder(root);
	}
};


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

[LeetCode] Flatten Binary Tree to Linked List 将二叉树展开成链表 C++

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

LeetCode 114. Flatten Binary Tree to Linked List(摊平二叉树)

原题网址:https://leetcode.com/problems/flatten-binary-tree-to-linked-list/ Given a binary tree, flatte...

【leetcode 二叉树摊直】Flatten Binary Tree to Linked List

1、题目 2、分析 3、代码 #

Leetcode Flatten Binary Tree to Linked List

深入理解了指针和树的操作,那么这道题是十分简单的,但是没理解好,那么这道题是非常难的。 重要一点:遍历访问的时候,不能改变没有访问过的树节点的结构。 也因为这一点,所以这道题不能像普通先序遍历那样写程...

LeetCode Flatten Binary Tree to Linked List

题目 Given a binary tree, flatten it to a linked list in-place. For example, Given 1 ...

[Leetcode]Flatten Binary Tree to Linked List (三种方法)

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

[leetcode]114. Flatten Binary Tree to Linked List@Java解题报告

https://leetcode.com/problems/flatten-binary-tree-to-linked-list/description/ Given a bin...

Leetcode 114. Flatten Binary Tree to Linked List

Given a binary tree, flatten it to a linked list in-place.For example, Given 1 / \ 2 5...

Leetcode: Flatten Binary Tree to Linked List

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

leetcode || 114、Flatten Binary Tree to Linked List

problem: Given a binary tree, flatten it to a linked list in-place. For example, Give...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)