LeetCode -- Flatten 二叉树
Posted wzzkaifa
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode -- Flatten 二叉树相关的知识,希望对你有一定的参考价值。
这个题目主要考察二叉树的先序遍历。
1. 先序遍历
2. 节点用队列存储
3. 遍历队列,建立链表
实现:
1. 先序遍历
2. 节点用队列存储
3. 遍历队列,建立链表
实现:
public class Solution { public void Flatten(TreeNode root) { if(root == null) { return; } Travel(root); root = _nodes[0]; root.left = null; root.right = null; for(var i = 1;i < _nodes.Count; i++){ var l = _nodes[i]; l.left = null; l.right = null; root.right = l; root = root.right; } } private List<TreeNode> _nodes = new List<TreeNode>(); private void Travel(TreeNode root){ _nodes.Add(root); if(root.left != null){ Travel(root.left); } if(root.right != null){ Travel(root.right); } } }
以上是关于LeetCode -- Flatten 二叉树的主要内容,如果未能解决你的问题,请参考以下文章
leetcode 114. 二叉树展开为链表(Flatten Binary Tree to Linked List)
LeetCode 114| Flatten Binary Tree to Linked List(二叉树转化成链表)
LeetCode-面试算法经典-Java实现114-Flatten Binary Tree to Linked List(二叉树转单链表)
LeetCode 114. Flatten Binary Tree to Linked List