题解 | #两个链表的第一个公共结点#

二叉树根节点到叶子节点的所有路径和

http://www.nowcoder.com/practice/185a87cd29eb42049132aed873273e83

DFS方法解决,首先判断root是否为null,如果是null的话就返回0;其次从头结点开始把头结点的值变为String类型,然后加上左右子节点的值,然后把这个全新的String又变为int类型并且分别赋值给左右两个节点,最后判断该节点是否为子节点(即左右子节点是否同时为null),如果是的话就直接返回该节点的值(因为已经加到最后一个节点了),最后return对左子树和右子树的返回值之和
public int sumNumbers (TreeNode root) {
        // write code here
        if(root == null){
            return 0;
        }

        int val = root.val;
        if(root.left != null){
            root.left.val = Integer.valueOf(String.valueOf(val) + root.left.val);
        }

        if(root.right != null){
            root.right.val = Integer.valueOf(String.valueOf(val) + root.right.val);
        }

        if(root.left == null && root.right == null){
            return val;
        }

        return sumNumbers(root.left) + sumNumbers(root.right);
    }

全部评论

相关推荐

废铁汽车人:秋招真是牛鬼蛇神齐聚一堂
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务