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 }
浙公网安备 33010602011771号