package com.huike; public class TreeNode { int val;//节点值 TreeNode left;//左节点 TreeNode right;//右节点 //构造方法对节点初始化 TreeNode(int x) { val = x; } TreeNode(){ } public TreeNode initTree(){ //根节点 TreeNode treeNode01 = new TreeNode(10); //10的左孩子 TreeNode treeNode02 = new TreeNode(9); //10的右孩子 TreeNode treeNode03 = new TreeNode(20); //20的左孩子 TreeNode treeNode04 = new TreeNode(15); //20的右孩子 TreeNode treeNode05 = new TreeNode(35); //对节点进行连接 treeNode01.setLeft(treeNode02); treeNode01.setRight(treeNode03); treeNode03.setLeft(treeNode04); treeNode03.setRight(treeNode05); return treeNode01; } public TreeNode getLeft() { return left; } public void setLeft(TreeNode left) { this.left = left; } public TreeNode getRight() { return right; } public void setRight(TreeNode right) { this.right = right; } public static void main(String args[]){ TreeNode treeNode = new TreeNode(); TreeNode root = treeNode.initTree(); sumOfLeftLeaves(root); System.out.println("左节点之和:="+ sum); } static int sum=0; //递归实现二叉树先序遍历 public static int sumOfLeftLeaves(TreeNode root){ if(root != null){ if(root.left !=null && root.left.left == null && root.left.right == null) { sum+=root.left.val;//root.left!=null排除root是叶子节点 } sumOfLeftLeaves(root.left); sumOfLeftLeaves(root.right); } return sum; } }
求左叶子树之和
最新推荐文章于 2021-12-26 00:41:33 发布