力扣 LeetCode 257. 二叉树的全部路径(Day8:二叉树)

打印 上一主题 下一主题

主题 1942|帖子 1942|积分 5826

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x

 
解题思绪:
第一次提到回溯
前序遍历
中左右
中是处理过程
左右是递归过程
注意递归三部曲的第二部,确定终止条件,这里就是遍历完叶子节点就制止,而不是遍历到空节点
  1. class Solution {
  2.     List<String> res = new ArrayList<>();
  3.     List<Integer> paths = new ArrayList<>();
  4.     public List<String> binaryTreePaths(TreeNode root) {
  5.         recur(root);
  6.         return res;
  7.     }
  8.     public void recur(TreeNode root) {
  9.         paths.add(root.val);
  10.         if (root.left == null && root.right == null) {
  11.             StringBuilder sb = new StringBuilder();
  12.             for (int i = 0; i < paths.size() - 1; i++) {
  13.                 sb.append(paths.get(i)).append("->");
  14.             }
  15.             sb.append(paths.get(paths.size() - 1));
  16.             res.add(sb.toString());
  17.             return;
  18.         }
  19.         if (root.left != null) {
  20.             recur(root.left);
  21.             paths.remove(paths.size() - 1);
  22.         }
  23.         if (root.right != null) {
  24.             recur(root.right);
  25.             paths.remove(paths.size() - 1);
  26.         }
  27.     }
  28. }
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

知者何南

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表