zoukankan      html  css  js  c++  java
  • 二叉树中和为某为某一值的路径

    public class 二叉树中和为某为某一值的路径
    {
        // 使用回溯算法 递归实现,分析好终止条件
        public void findPath(TreeNode root, int expectedNum)
        {
            if (root == null)
            {
                return;
            }
            if (expectedNum <= 0)
            {
                return;
            }
            int currentNum = 0;
            Stack<Integer> path = null;
            findPathCore(root, currentNum, path, expectedNum);
        }

        void findPathCore(TreeNode root, int currentNum, Stack<Integer> path,
                int expectedNum)
        {
            // 保存当前节点
            path.add(root.value);
            // 变化当前值
            currentNum += root.value;
            // flag 是否为叶子节点
            boolean isLeaf = root.left == null && root.right == null;
            // 找到相关路径
            if (currentNum == expectedNum && isLeaf)
            {
                // 输出相关路径 使用Iterator
                Iterator<Integer> res = path.iterator();
                while (res.hasNext())
                {
                    System.out.print(res.next());
                }
                System.out.println();

            }
            if (root.left != null)
            {
                findPathCore(root.left, currentNum, path, expectedNum);
            }
            if (root.right != null)
            {
                findPathCore(root.right, currentNum, path, expectedNum);
            }
            // 如果不满足天剑 最关键删除当前节点 进行回溯
            path.pop();
        }

    }

  • 相关阅读:
    NET5 WebApi 解决跨域问题
    CentOS7安装MYSQL
    VMWare安装CentOS7
    MSSQL还原数据库,更改用户登陆权限
    Vue自定义页面路由
    解决VSCODE"因为在此系统上禁止运行脚本"报错
    简析 HTTP 2.0 多路复用
    Git放弃本地修改,强制拉取最新版
    eclipse安装OpenExplorer插件--快速打开文件目录
    git统计某段时间内代码的修改量/总代码量
  • 原文地址:https://www.cnblogs.com/qingtianBKY/p/8258261.html
Copyright © 2011-2022 走看看