diff --git a/problems/0617.合并二叉树.md b/problems/0617.合并二叉树.md index d65275f0..be6bb425 100644 --- a/problems/0617.合并二叉树.md +++ b/problems/0617.合并二叉树.md @@ -332,6 +332,43 @@ class Solution: Go: +```go +/** + * Definition for a binary tree node. + * type TreeNode struct { + * Val int + * Left *TreeNode + * Right *TreeNode + * } + */ + //前序遍历(递归遍历,跟105 106差不多的思路) +func mergeTrees(t1 *TreeNode, t2 *TreeNode) *TreeNode { + var value int + var nullNode *TreeNode//空node,便于遍历 + nullNode=&TreeNode{ + Val:0, + Left:nil, + Right:nil} + switch { + case t1==nil&&t2==nil: return nil//终止条件 + default : //如果其中一个节点为空,则将该节点置为nullNode,方便下次遍历 + if t1==nil{ + value=t2.Val + t1=nullNode + }else if t2==nil{ + value=t1.Val + t2=nullNode + }else { + value=t1.Val+t2.Val + } + } + root:=&TreeNode{//构造新的二叉树 + Val: value, + Left: mergeTrees(t1.Left,t2.Left), + Right: mergeTrees(t1.Right,t2.Right)} + return root +} +```