366. Find Leaves of Binary Tree
Posted 咖啡中不塌缩的方糖
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了366. Find Leaves of Binary Tree相关的知识,希望对你有一定的参考价值。
Given a binary tree, collect a tree‘s nodes as if you were doing this: Collect and remove all leaves, repeat until the tree is empty.
Example:
Given binary tree
1 / 2 3 / \ 4 5
Returns [4, 5, 3], [2], [1]
.
Explanation:
1. Removing the leaves [4, 5, 3]
would result in this tree:
1 / 2
2. Now removing the leaf [2]
would result in this tree:
1
3. Now removing the leaf [1]
would result in the empty tree:
[]
Returns [4, 5, 3], [2], [1]
.
public IList<IList<int>> FindLeaves(TreeNode root) { var res = new List<IList<int>>(); if(root == null) return res; DFS(root,res); return res; } public int DFS(TreeNode root,IList<IList<int>> res ) { if(root == null) return -1; int a = 1+Math.Max(DFS(root.left,res), DFS(root.right,res)); if(a >= res.Count()) res.Add(new List<int>()); res[a].Add(root.val); return a; }
public IList<IList<int>> FindLeaves(TreeNode root) { var res = new List<IList<int>>(); if(root == null) return res; while(root != null) { var cur = new List<int>(); root = DFS(root,cur); res.Add(cur); } return res; } public TreeNode DFS(TreeNode root,IList<int> res ) { if(root == null) return null; if(root.left == null && root.right == null) { res.Add(root.val); return null; } root.left = DFS(root.left, res); root.right = DFS(root.right,res); return root; }
以上是关于366. Find Leaves of Binary Tree的主要内容,如果未能解决你的问题,请参考以下文章
366. Find Leaves of Binary Tree
Leetcode 366. Find Leaves of Binary Tree
Leetcode 366: Find Leaves of Binary Tree
366. Find Leaves of Binary Tree C#