developS

Leetcode 题解 - 树

5月30日

1.题目226  翻转树

 1     public TreeNode invertTree(TreeNode root) {
 2 
 3         //从上到下的递归操作
 4         if(root == null)   return null;
 5         TreeNode node =root.left;
 6         root.left=root.right;
 7         root.right=node;
 8         //递归交换左子树
 9         invertTree(root.left);
10         //递归交换右子树
11         invertTree(root.right);
12         //已经交换完了
13         return root;
14 
15     }

 

2.题目617 归并两棵树

1     public TreeNode mergeTrees(TreeNode root1, TreeNode root2) {
2 任意一棵树为空,返回另外一棵树 3 if(root1 == null) return root2; 4 if(root2 == null) return root1;
对两课树分别递归左右子树,结点都存在则为和 否则保存存在的结点
5 TreeNode node =new TreeNode(root1.val+root2.val); 6 node.left=mergeTrees(root1.left,root2.left); 7 node.right=mergeTrees(root1.right,root2.right); 8 return node; 9 }

 

posted on 2022-05-31 09:44  四十四次日落95  阅读(26)  评论(0)    收藏  举报