力扣1022二叉树节点转换二进制相加
我这个菜逼又来了,菜到抠脚
本来用了迭代方法,结果回溯节点的时候一直错,不是多一个,就是少一个
1.分别递归左节点,右节点。
2.当前节点为空结束
3.左右节点同时为空的时候进行计算
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNode(int val, TreeNode left, TreeNode right) { * this.val = val; * this.left = left; * this.right = right; * } * } */ class Solution { int sum=0; public int sumRootToLeaf(TreeNode root) { f(root,0); return sum; } public void f(TreeNode root,int n){ if(root==null){ return; } n=n*2+root.val;//越往下,值越大,翻倍加上当前值 if(root.left==null&&root.right==null){ sum+=n;//左右节点皆为空,说明这一条已经到底了 } f(root.left,n); f(root.right,n); } }
上一篇:
92天倒计时,蓝桥杯省赛备赛攻略来啦~
下一篇:
Python自动化测试实现的思路