/**
* Definition for a binary tree node.
* public class TreeNode {
* public int val;
* public TreeNode left;
* public TreeNode right;
* public TreeNode(int x) { val = x; }
* }
*/
public class Solution {
Stack<TreeNode> S = new Stack<TreeNode>(); List<List<string>> list = new List<List<string>>(); private void postNode(TreeNode root)
{
if (root != null)
{
S.Push(root);
if (root.left != null)
{
postNode(root.left);
}
if (root.right != null)
{
postNode(root.right);
}
if (root.left == null && root.right == null)
{
var l = S.Reverse().ToList();
var n = new List<string>();
foreach (var d in l)
{
n.Add(d.val.ToString());
}
list.Add(n);
}
S.Pop();
}
} public IList<string> BinaryTreePaths(TreeNode root)
{
var result = new List<string>(); postNode(root);
foreach (var d in list)
{
StringBuilder sb = new StringBuilder();
for (int i = ; i < d.Count; i++)
{
sb.Append(d[i]);
if (i != d.Count - )
{
sb.Append("->");
}
}
result.Add(sb.ToString());
}
return result;
}
}
https://leetcode.com/problems/binary-tree-paths/#/description