/** * 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 = 0; i < d.Count; i++) { sb.Append(d[i]); if (i != d.Count - 1) { sb.Append("->"); } } result.Add(sb.ToString()); } return result; } }
https://leetcode.com/problems/binary-tree-paths/#/description
时间: 2024-10-07 16:26:15