From 01f87cc50566c9a171f6c828d1eb2b9f5828f646 Mon Sep 17 00:00:00 2001 From: X-shuffle <53906918+X-shuffle@users.noreply.github.com> Date: Sun, 13 Jun 2021 21:48:05 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=200617.=E5=90=88=E5=B9=B6?= =?UTF-8?q?=E4=BA=8C=E5=8F=89=E6=A0=91=20go=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 添加 0617.合并二叉树 go版本 --- problems/0617.合并二叉树.md | 37 ++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) 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 +} +```