【回溯】二叉树的所有路径

求解代码

java 复制代码
public List<String> binaryTreePaths(TreeNode root) {
            List<String> ans = new ArrayList<>();
            if (root == null) {
                return ans;
            }
            StringBuilder sb = new StringBuilder();
            backtrack(root, sb, ans);
            return ans;
        }

        private void backtrack(TreeNode root, StringBuilder sb, List<String> ans) {
            if (root == null) {
                return;
            }
            // 记录当前拼接前的长度,用于回溯撤销
            int len = sb.length();

            sb.append(root.val);
            // 到达叶子节点,添加完整路径
            if (root.left == null && root.right == null) {
                ans.add(sb.toString());
            } else {
                sb.append("->");
                backtrack(root.left, sb, ans);
                backtrack(root.right, sb, ans);
            }
            // 回溯撤销,恢复StringBuilder到拼接前的状态
            sb.setLength(len);
        }
相关推荐
Drifter_yh10 小时前
【黑马点评】Redisson 分布式锁核心原理剖析
java·数据库·redis·分布式·spring·缓存
普通网友10 小时前
Android Jetpack 架构组件最佳实践之“网抑云”APP
android·架构·android jetpack
普通网友10 小时前
原创_Android Jetpack Compose 最全上手指南
android·android jetpack
FDoubleman10 小时前
Android Jetpack之Compose入门(一)
android·android jetpack
普通网友11 小时前
Android Jetpack从入门到精通,干货满满
android·android jetpack
子云心11 小时前
Android Jetpack 系列(七)App Startup 启动优化
android·android jetpack·jetpack·initializer·startup·appstartup
嫩嫩的猿11 小时前
android jetpack compose Model对象更新变量 UI不更新、不刷新问题
android·ui·android jetpack
普通网友11 小时前
Android Jetpack 之 LifeCycle 组件_android 自定义view lifecycle
android·gitee·android jetpack
_codemonster11 小时前
数据库字符集编码问题
android·数据库·oracle